Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Type.Equals (Object)

 

Publicado: octubre de 2016

Determina si el tipo del sistema subyacente del actual Type objeto es el mismo que el tipo de sistema subyacente del objeto Object.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public override bool Equals(
	object o
)

Parámetros

o
Type: System.Object

Objeto cuyo tipo de sistema subyacente se va a comparar con el tipo de sistema subyacente del objeto Type actual. Para la comparación se realice correctamente, o debe ser capaz de convertir o convertido en un objeto de tipo Type.

Valor devuelto

Type: System.Boolean

Es true si el tipo del sistema subyacente de o coincide con el tipo del sistema subyacente del objeto Type actual; de lo contrario, es false. Este método también devuelve false si:.

  • El valor de o es null.

  • o no se puede convertir o convertir a un Type objeto.

Este método reemplaza Object.Equals. Proyecta o a un objeto de tipo Type y llama a la Type.Equals(Type) (método).

En el ejemplo siguiente se utiliza Equals(Object) para comparar varios Type instancias con distintas de un objeto Object instancias.

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.

Dos cosas son especialmente que vale la pena tener en cuenta el ejemplo:

  • La comparación de un Type objeto que representa un entero con un TypeInfo objeto que representa un valor devuelto entero true porque TypeInfo se deriva de Type.

  • La comparación de un Type objeto que representa un IList<T> objeto (un tipo genérico abierto) con un List(Of String) object (tipo genérico cerrado) devuelve false.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: