Type.Equals Yöntem

Tanım

Geçerli öğesinin temeldeki sistem türünün, Type belirtilen veya temeldeki sistem türüyle aynı olup olmadığını belirler Object Type .Determines if the underlying system type of the current Type is the same as the underlying system type of the specified Object or Type.

Aşırı Yüklemeler

Equals(Type)

Geçerli nesnenin temel alınan sistem türünün, Type belirtilen temeldeki sistem türüyle aynı olup olmadığını belirler Type .Determines if the underlying system type of the current Type is the same as the underlying system type of the specified Type.

Equals(Object)

Geçerli nesnenin temeldeki sistem türünün, Type belirtilen temeldeki sistem türüyle aynı olup olmadığını belirler Object .Determines if the underlying system type of the current Type object is the same as the underlying system type of the specified Object.

Equals(Type)

Geçerli nesnenin temel alınan sistem türünün, Type belirtilen temeldeki sistem türüyle aynı olup olmadığını belirler Type .Determines if the underlying system type of the current Type is the same as the underlying system type of the specified Type.

public:
 bool Equals(Type ^ o);
public:
 virtual bool Equals(Type ^ o);
public bool Equals (Type o);
public virtual bool Equals (Type? o);
public virtual bool Equals (Type o);
override this.Equals : Type -> bool
Public Function Equals (o As Type) As Boolean
Public Overridable Function Equals (o As Type) As Boolean

Parametreler

o
Type

Temeldeki sistem türü, geçerli olan temeldeki sistem türü ile karşılaştırılacağı nesne Type .The object whose underlying system type is to be compared with the underlying system type of the current Type.

Döndürülenler

Boolean

true temeldeki sistem türü, o geçerli, temeldeki sistem türü ile aynı ise Type , aksi durumda, false .true if the underlying system type of o is the same as the underlying system type of the current Type; otherwise, false.

Uygulamalar

Örnekler

Aşağıdaki örnek, Equals iki türü karşılaştırmak için kullanır.The following example uses Equals to compare two types.


using System;
using System.Reflection;

class Example
{
    public static void Main()
    {

        Type a = typeof(System.String);
        Type b = typeof(System.Int32);

        Console.WriteLine("{0} == {1}: {2}", a, b, a.Equals(b));

        // The Type objects in a and b are not equal,
        // because they represent different types.

        a = typeof(Example);
        b = new Example().GetType();

        Console.WriteLine("{0} is equal to {1}: {2}", a, b, a.Equals(b));

        // The Type objects in a and b are equal,
        // because they both represent type Example.

        b = typeof(Type);

        Console.WriteLine("typeof({0}).Equals(typeof({1})): {2}", a, b, a.Equals(b));

        // The Type objects in a and b are not equal,
        // because variable a represents type Example
        // and variable b represents type Type.

        //Console.ReadLine();
    }
}

//
/* This code example produces the following output:
    System.String == System.Int32: False
    Example is equal to Example: True
    typeof(Example).Equals(typeof(System.Type)): False
*/
Imports System.Reflection



Class Example
    
    Public Shared Sub Main() 
        
        Dim a As Type = GetType(System.String)
        Dim b As Type = GetType(System.Int32)
        
        Console.WriteLine("{0} = {1}: {2}", a, b, a.Equals(b))
        ' The Type objects in a and b are not equal,
        ' because they represent different types.

        a = GetType(Example)
        b = New Example().GetType()
        Console.WriteLine("{0} is equal to {1}: {2}", a, b, a.Equals(b))
        ' The Type objects in a and b are equal,
        ' because they both represent type Example.

        b = GetType(Type)
        Console.WriteLine("typeof({0}).Equals(typeof({1})): {2}", a, b, a.Equals(b))
        ' The Type objects in a and b are not equal,
        ' because variable a represents type Example
        ' and variable b represents type Type.

        'Console.ReadLine()
    
    End Sub 
End Class
'
' This code example produces the following output:
'    System.String = System.Int32: False
'    Example is equal to Example: True
'    typeof(Example).Equals(typeof(System.Type)): False
'

Ayrıca bkz.

Şunlara uygulanır

Equals(Object)

Geçerli nesnenin temeldeki sistem türünün, Type belirtilen temeldeki sistem türüyle aynı olup olmadığını belirler Object .Determines if the underlying system type of the current Type object is the same as the underlying system type of the specified Object.

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

Parametreler

o
Object

Temeldeki sistem türü, geçerli olan temeldeki sistem türü ile karşılaştırılacağı nesne Type .The object whose underlying system type is to be compared with the underlying system type of the current Type. Karşılaştırma işleminin başarılı olması için, o tür bir nesneye dönüştürülebilir veya dönüştürülebilmelidir Type .For the comparison to succeed, o must be able to be cast or converted to an object of type Type.

Döndürülenler

Boolean

true temeldeki sistem türü, o geçerli, temeldeki sistem türü ile aynı ise Type , aksi durumda, false .true if the underlying system type of o is the same as the underlying system type of the current Type; otherwise, false. Bu yöntem şunu de döndürür false :This method also returns false if:

  • onull.
  • o is null.

  • o bir nesneye atanamaz veya dönüştürülemez Type .
  • o cannot be cast or converted to a Type object.
  • Uygulamalar

    Örnekler

    Aşağıdaki örnek çeşitli Equals(Object) Type nesne örneklerini çeşitli örneklerle karşılaştırmak için kullanır Object .The following example uses Equals(Object) to compare various Type object instances with various Object instances.

    using System;
    using System.Collections.Generic;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          Type t =typeof(int);
          Object obj1 = typeof(int).GetTypeInfo();
          IsEqualTo(t, obj1);
    
          Object obj2 = typeof(String);
          IsEqualTo(t, obj2);
          
          t = typeof(Object);
          Object obj3 = typeof(Object);
          IsEqualTo(t, obj3);
          
          t = typeof(List<>);
          Object obj4 = (new List<String>()).GetType();
          IsEqualTo(t, obj4);
          
          t = typeof(Type);
          Object obj5 = null;
          IsEqualTo(t, obj5);
       }
       
       private static void IsEqualTo(Type t, Object inst)
       {
          Type t2 = inst as Type;
          if (t2 != null)
             Console.WriteLine("{0} = {1}: {2}", t.Name, t2.Name,
                               t.Equals(t2));
          else
             Console.WriteLine("Cannot cast the argument to a type.");
    
          Console.WriteLine();                        
       }
    }
    // The example displays the following output:
    //       Int32 = Int32: True
    //       
    //       Int32 = String: False
    //       
    //       Object = Object: True
    //       
    //       List`1 = List`1: False
    //       
    //       Cannot cast the argument to a type.
    
    Imports System.Collections.Generic
    Imports System.Reflection
    
    Module Example
       Public Sub Main()
          Dim t As Type = GetType(Integer)
          Dim obj1 As Object = GetType(Integer).GetTypeInfo()
          IsEqualTo(t, obj1)
    
          Dim obj2 As Object = GetType(String)
          IsEqualTo(t, obj2)
          
          t = GetType(Object)
          Dim obj3 As Object = GetType(Object)
          IsEqualTo(t, obj3)
          
          t = GetType(List(Of ))
          Dim obj4 As Object = (New List(Of String())).GetType()
          IsEqualTo(t, obj4)
          
          t = GetType(Type)
          Dim obj5 As Object = Nothing
          IsEqualTo(t, obj5)
       End Sub
       
       Private Sub IsEqualTo(t As Type, inst As Object)
          Dim t2 As Type = TryCast(inst, Type)
          If t2 IsNot Nothing Then
             Console.WriteLine("{0} = {1}: {2}", t.Name, t2.Name,
                               t.Equals(t2))
          Else
             Console.WriteLine("Cannot cast the argument to a type.")
          End If
          Console.WriteLine()                        
       End Sub
    End Module
    ' The example displays the following output:
    '       Int32 = Int32: True
    '       
    '       Int32 = String: False
    '       
    '       Object = Object: True
    '       
    '       List`1 = List`1: False
    '       
    '       Cannot cast the argument to a type.
    

    Özellikle örnek hakkında dikkat etmeniz gereken iki şey vardır:Two things are particularly worth noting about the example:

    • Type TypeInfo true TypeInfo Öğesinden türetildiğinden, bir tamsayı dönüşü temsil eden nesnesiyle bir tamsayıyı temsil eden bir nesnenin karşılaştırması Type .The comparison of a Type object that represents an integer with a TypeInfo object that represents an integer return true because TypeInfo is derived from Type.

    • Nesne ( Type IList<T> kapalı genel tür) olan bir nesneyi (açık genel tür) temsil eden bir nesnenin karşılaştırılması, List(Of String) döndürür false .The comparison of a Type object that represents a IList<T> object (an open generic type) with a List(Of String) object (a closed generic type) returns false.

    Açıklamalar

    Bu yöntem geçersiz kılınır Object.Equals .This method overrides Object.Equals. oTüründe bir nesneye yayınlar Type ve Type.Equals(Type) yöntemini çağırır.It casts o to an object of type Type and calls the Type.Equals(Type) method.

    Ayrıca bkz.

    Şunlara uygulanır