Ler em inglês

Compartilhar via


Type.Equals Método

Definição

Determina se o tipo de sistema subjacente do Type atual é o mesmo que o tipo de sistema subjacente do Object ou Type especificado.

Sobrecargas

Equals(Type)

Determina se o tipo de sistema subjacente do Type atual é o mesmo que o tipo de sistema subjacente do Type especificado.

Equals(Object)

Determina se o tipo de sistema subjacente do objeto Type atual é o mesmo que o tipo de sistema subjacente do Object especificado.

Equals(Type)

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Determina se o tipo de sistema subjacente do Type atual é o mesmo que o tipo de sistema subjacente do Type especificado.

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

Parâmetros

o
Type

O objeto cujo tipo subjacente do sistema a ser comparado com o tipo de sistema subjacente do atual Type.

Retornos

true se o tipo de sistema subjacente do o for o mesmo que o tipo de sistema subjacente do Type atual; caso contrário, false.

Implementações

Exemplos

O exemplo a seguir usa Equals para comparar dois tipos.

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

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.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)

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Determina se o tipo de sistema subjacente do objeto Type atual é o mesmo que o tipo de sistema subjacente do Object especificado.

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

Parâmetros

o
Object

O objeto cujo tipo subjacente do sistema a ser comparado com o tipo de sistema subjacente do atual Type. Para que a comparação seja bem-sucedida, o deve ser capaz de ser convertido ou convertido em um objeto do tipo Type.

Retornos

true se o tipo de sistema subjacente do o for o mesmo que o tipo de sistema subjacente do Type atual; caso contrário, false. Esse método também retorna false se:

  • o é null.

  • o não pode ser convertido em um objeto Type.

Implementações

Exemplos

O exemplo a seguir usa para comparar várias Equals(Object)Type instâncias de objeto com várias Object instâncias.

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.

Vale a pena observar duas coisas sobre o exemplo:

  • A comparação de um Type objeto que representa um inteiro com um TypeInfo objeto que representa um retorno true inteiro porque TypeInfo é derivado de Type.

  • A comparação de um Type objeto que representa um IList<T> objeto (um tipo genérico aberto) com um List(Of String) objeto (um tipo genérico fechado) retorna false.

Comentários

Este método substitui Object.Equals. Ele é convertido o em um objeto do tipo Type e chama o Type.Equals(Type) método .

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.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