Tuple<T1>.Equals(Object) Yöntem

Tanım

Geçerli Tuple<T1> nesnenin belirtilen bir nesneye eşit olup olmadığını gösteren bir değer döndürür.

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

Parametreler

obj
Object

Örnekle karşılaştırılacak nesne.

Döndürülenler

true geçerli örnek belirtilen nesneye eşitse; aksi takdirde , false.

Örnekler

Aşağıdaki örnek, bileşeni bir değer olan Double bir Tuple<T1> nesneyi, bileşenleri aşağıdaki özelliklere sahip üç Tuple<T1> nesneyle karşılaştırmak için yöntemini çağırırTuple<T1>.Equals(Object):

  • Aynı tür (Double) ve aynı değer.

  • Aynı tür ()Double ancak farklı bir değer.

  • Farklı tür ()Single ancak aynı değer.

using System;

public class Example
{
   public static void Main()
   {
      var doubleTuple1 = Tuple.Create(12.3455);
      var doubleTuple2 = Tuple.Create(16.8912);
      var doubleTuple3 = Tuple.Create(12.3455);
      var singleTuple1 = Tuple.Create(12.3455f);
      var tuple2 = Tuple.Create("James", 97.3); 
        
      // Compare first tuple with a Tuple(Of Double) with a different value.
      TestEquality(doubleTuple1, doubleTuple2);
      // Compare first tuple with a Tuple(Of Double) with the same value.
      TestEquality(doubleTuple1, doubleTuple3);
      // Compare first tuple with a Tuple(Of Single) with the same value.
      TestEquality(doubleTuple1, singleTuple1);
      // Compare a 1-tuple with a 2-tuple.
      TestEquality(doubleTuple1, tuple2); 
   }

   private static void TestEquality(Tuple<double> tuple, object obj)
   {
      Console.WriteLine("{0} = {1}: {2}", tuple.ToString(),
                                          obj.ToString(),
                                          tuple.Equals(obj));
   } 
}
// The example displays the following output:
//       (12.3455) = (16.8912): False
//       (12.3455) = (12.3455): True
//       (12.3455) = (12.3455): False
//       (12.3455) = (James, 97.3): False
open System

let testEquality (tuple: Tuple<double>) (obj: obj) =
    printfn $"{tuple} = {obj}: {tuple.Equals obj}"

let doubleTuple1 = Tuple.Create 12.3455
let doubleTuple2 = Tuple.Create 16.8912
let doubleTuple3 = Tuple.Create 12.3455
let singleTuple1 = Tuple.Create 12.3455f
let tuple2 = Tuple.Create("James", 97.3) 

// Compare first tuple with a Tuple(Of Double) with a different value.
testEquality doubleTuple1 doubleTuple2
// Compare first tuple with a Tuple(Of Double) with the same value.
testEquality doubleTuple1 doubleTuple3
// Compare first tuple with a Tuple(Of Single) with the same value.
testEquality doubleTuple1 singleTuple1
// Compare a 1-tuple with a 2-tuple.
testEquality doubleTuple1 tuple2 

// The example displays the following output:
//       (12.3455) = (16.8912): False
//       (12.3455) = (12.3455): True
//       (12.3455) = (12.3455): False
//       (12.3455) = (James, 97.3): False
Module Example
    Sub Main()
        Dim doubleTuple1 = Tuple.Create(12.3455)

        Dim doubleTuple2 = Tuple.Create(16.8912)
        Dim doubleTuple3 = Tuple.Create(12.3455)
        Dim singleTuple1 = Tuple.Create(CSng(12.3455))
        Dim tuple2 = Tuple.Create("James", 97.3) 
        ' Compare first tuple with a Tuple(Of Double) with a different value.
        TestEquality(doubleTuple1, doubleTuple2)
        ' Compare first tuple with a Tuple(Of Double) with the same value.
        TestEquality(doubleTuple1, doubleTuple3)
        ' Compare first tuple with a Tuple(Of Single) with the same value.
        TestEquality(doubleTuple1, singleTuple1)
        ' Compare a 1-tuple with a 2-tuple.
        TestEquality(doubleTuple1, tuple2) 
    End Sub
    
   Private Sub TestEquality(tuple As Tuple(Of Double), obj As Object)
      Try
         Console.WriteLine("{0} = {1}: {2}", tuple.ToString(),
                                            obj.ToString,
                                            tuple.Equals(obj))
      
      Catch e As ArgumentException
         If obj.GetType.IsGenericType Then 
            If obj.GetType().Name = "Tuple`1" Then 
               Console.WriteLine("Cannot compare a Tuple(Of {0}) with a Tuple(Of {1}).", 
                              tuple.Item1.GetType().Name, obj.Item1.GetType().Name)
            Else
               Console.WriteLine("Cannot compare a {0} with a {1}.", tuple.GetType().Name, 
                                                                     obj.GetType().Name)
            End If
         Else
            Console.WriteLine("Cannot compare a {0} with a {1}.", tuple.GetType().Name,
                                                                  obj.GetType().Name)
         End If
      End Try
   End Sub
End Module
' The example displays the following output:
'       (12.3455) = (16.8912): False
'       (12.3455) = (12.3455): True
'       (12.3455) = (12.3455): False
'       (12.3455) = (James, 97.3): False

Açıklamalar

obj parametresi aşağıdaki koşullarda geçerli örneğe eşit olarak kabul edilir:

  • Bu bir Tuple<T1> nesne.

  • Tek bileşeni geçerli örnekle aynı türdedir.

  • Tek bileşeni geçerli örneğinkine eşittir. Eşitlik, her bileşen için varsayılan nesne eşitliği karşılaştırıcısı tarafından belirlenir.

Şunlara uygulanır