Type.Equals Metoda

Definicja

Określa, czy bazowy typ systemu bieżącego Type jest taki sam jak podstawowy typ systemu określonego Object lub Type.

Przeciążenia

Equals(Type)

Określa, czy podstawowy typ systemu bieżącego Type jest taki sam jak podstawowy typ systemu określonego Type.

Equals(Object)

Określa, czy bazowy typ systemu bieżącego Type obiektu jest taki sam jak podstawowy typ systemu określonego Object.

Equals(Type)

Źródło:
Type.cs
Źródło:
Type.cs
Źródło:
Type.cs

Określa, czy podstawowy typ systemu bieżącego Type jest taki sam jak podstawowy typ systemu określonego Type.

C#
public bool Equals (Type o);
C#
public virtual bool Equals (Type? o);
C#
public virtual bool Equals (Type o);

Parametry

o
Type

Obiekt, którego podstawowy typ systemu ma być porównywany z bazowym typem systemu bieżącego Type.

Zwraca

truejeśli podstawowy typ o systemu jest taki sam jak podstawowy typ systemu bieżącego Type; w przeciwnym razie . false

Implementuje

Przykłady

W poniższym przykładzie użyto Equals metody do porównania dwóch typów.

C#

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
*/

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Equals(Object)

Źródło:
Type.cs
Źródło:
Type.cs
Źródło:
Type.cs

Określa, czy bazowy typ systemu bieżącego Type obiektu jest taki sam jak podstawowy typ systemu określonego Object.

C#
public override bool Equals (object o);
C#
public override bool Equals (object? o);

Parametry

o
Object

Obiekt, którego podstawowy typ systemu ma być porównywany z bazowym typem systemu bieżącego Type. Aby porównanie zakończyło się pomyślnie, o musi być możliwe rzutowanie lub konwertowanie na obiekt typu Type.

Zwraca

truejeśli podstawowy typ o systemu jest taki sam jak podstawowy typ systemu bieżącego Type; w przeciwnym razie . false Ta metoda zwraca również wartość false , jeśli:

  • o to null.

  • o Nie można rzutować ani konwertować na Type obiekt.

Implementuje

Przykłady

W poniższym przykładzie użyto Equals(Object) metody do porównania różnych Type wystąpień obiektów z różnymi Object wystąpieniami.

C#
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.

Szczególnie warto zwrócić uwagę na dwa kwestie dotyczące przykładu:

  • Porównanie Type obiektu reprezentującego liczbę całkowitą z obiektem TypeInfo reprezentującym zwracaną true liczbę całkowitą, ponieważ TypeInfo pochodzi z Type.

  • Porównanie Type obiektu reprezentującego IList<T> obiekt (otwarty typ ogólny) z obiektem List(Of String) (zamkniętym typem ogólnym) zwraca wartość false.

Uwagi

Ta metoda zastępuje metodę Object.Equals. Rzutuje o do obiektu typu Type i wywołuje metodę Type.Equals(Type) .

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0