Tuple<T1,T2>.Equals(Object) 方法

定义

返回一个值,该值指示当前 Tuple<T1,T2> 对象是否等于指定对象。

public:
 override bool Equals(System::Object ^ obj);
public override bool Equals(object obj);
public override bool Equals(object? obj);
override this.Equals : obj -> bool
Public Overrides Function Equals (obj As Object) As Boolean

参数

obj
Object

要与此实例进行比较的对象。

返回

true 如果当前实例等于指定的对象,则为 ;否则,为 false.

示例

下面的示例调用 Tuple<T1,T2>.Equals(Object) 该方法来确定对象数组 Tuple<T1,T2> 中的任何对象是否彼此相等。 输出反映了该方法在比较Equals(Object)其组件具有相等值的对象时返回true的事实Tuple<T1,T2>

using System;

public class Example
{
   public static void Main()
   {
      Tuple<string, Nullable<int>>[] scores = 
                      { new Tuple<string, Nullable<int>>("Dan", 90),
                        new Tuple<string, Nullable<int>>("Ernie", null),
                        new Tuple<string, Nullable<int>>("Jill", 88),
                        new Tuple<string, Nullable<int>>("Ernie", null), 
                        new Tuple<string, Nullable<int>>("Nancy", 88), 
                        new Tuple<string, Nullable<int>>("Dan", 90) };

      // Compare the Tuple objects
      for (int ctr = 0; ctr < scores.Length; ctr++)
      {
         for (int innerCtr = ctr + 1; innerCtr < scores.Length; innerCtr++)
         {
            Console.WriteLine("{0} = {1}: {2}", 
                              scores[ctr], scores[innerCtr], 
                              scores[ctr].Equals(scores[innerCtr]));
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//       (Dan, 90) = (Ernie, ): False
//       (Dan, 90) = (Jill, 88): False
//       (Dan, 90) = (Ernie, ): False
//       (Dan, 90) = (Nancy, 88): False
//       (Dan, 90) = (Dan, 90): True
//       
//       (Ernie, ) = (Jill, 88): False
//       (Ernie, ) = (Ernie, ): True
//       (Ernie, ) = (Nancy, 88): False
//       (Ernie, ) = (Dan, 90): False
//       
//       (Jill, 88) = (Ernie, ): False
//       (Jill, 88) = (Nancy, 88): False
//       (Jill, 88) = (Dan, 90): False
//       
//       (Ernie, ) = (Nancy, 88): False
//       (Ernie, ) = (Dan, 90): False
//       
//       (Nancy, 88) = (Dan, 90): False
open System

let scores = 
    [| Tuple<string, Nullable<int>>("Dan", 90)
       Tuple<string, Nullable<int>>("Ernie", Nullable())
       Tuple<string, Nullable<int>>("Jill", 88)
       Tuple<string, Nullable<int>>("Ernie", Nullable()) 
       Tuple<string, Nullable<int>>("Nancy", 88)
       Tuple<string, Nullable<int>>("Dan", 90) |]

// Compare the Tuple objects
for ctr = 0 to scores.Length - 1 do
    for innerCtr = ctr + 1 to scores.Length - 1 do
        printfn $"{scores[ctr]} = {scores[innerCtr]}: {scores[ctr].Equals scores[innerCtr]}"
    printfn ""
// The example displays the following output:
//       (Dan, 90) = (Ernie, ): False
//       (Dan, 90) = (Jill, 88): False
//       (Dan, 90) = (Ernie, ): False
//       (Dan, 90) = (Nancy, 88): False
//       (Dan, 90) = (Dan, 90): True
//       
//       (Ernie, ) = (Jill, 88): False
//       (Ernie, ) = (Ernie, ): True
//       (Ernie, ) = (Nancy, 88): False
//       (Ernie, ) = (Dan, 90): False
//       
//       (Jill, 88) = (Ernie, ): False
//       (Jill, 88) = (Nancy, 88): False
//       (Jill, 88) = (Dan, 90): False
//       
//       (Ernie, ) = (Nancy, 88): False
//       (Ernie, ) = (Dan, 90): False
//       
//       (Nancy, 88) = (Dan, 90): False
Module Example
   Public Sub Main()
      Dim scores() As Tuple(Of String, Nullable(Of Integer)) = 
                      { New Tuple(Of String, Nullable(Of Integer))("Dan", 90),
                        New Tuple(Of String, Nullable(Of Integer))("Ernie", Nothing),
                        New Tuple(Of String, Nullable(Of Integer))("Jill", 88),
                        New Tuple(Of String, Nullable(Of Integer))("Ernie", Nothing), 
                        New Tuple(Of String, Nullable(Of Integer))("Nancy", 88), 
                        New Tuple(Of String, Nullable(Of Integer))("Dan", 90) }

      ' Compare the Tuple objects
      For ctr As Integer = 0 To scores.Length - 1
         For innerCtr As Integer = ctr + 1 To scores.Length - 1
            Console.WriteLine("{0} = {1}: {2}", 
                              scores(ctr), scores(innerCtr), 
                              scores(ctr).Equals(scores(innerCtr)))
         Next
         Console.WriteLine()
      Next
   End Sub
End Module
' The example displays the following output:
'       (Dan, 90) = (Ernie, ): False
'       (Dan, 90) = (Jill, 88): False
'       (Dan, 90) = (Ernie, ): False
'       (Dan, 90) = (Nancy, 88): False
'       (Dan, 90) = (Dan, 90): True
'       
'       (Ernie, ) = (Jill, 88): False
'       (Ernie, ) = (Ernie, ): True
'       (Ernie, ) = (Nancy, 88): False
'       (Ernie, ) = (Dan, 90): False
'       
'       (Jill, 88) = (Ernie, ): False
'       (Jill, 88) = (Nancy, 88): False
'       (Jill, 88) = (Dan, 90): False
'       
'       (Ernie, ) = (Nancy, 88): False
'       (Ernie, ) = (Dan, 90): False
'       
'       (Nancy, 88) = (Dan, 90): False

注解

在以下条件下,该 obj 参数被视为等于当前实例:

  • 它是一个 Tuple<T1,T2> 对象。

  • 它的两个组件与当前实例的类型相同。

  • 它的两个组件等于当前实例的组件。 相等性由每个组件的默认对象相等比较器确定。

适用于