Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Type.Equals méthode (Object)

 

Date de publication : novembre 2016

Détermine si le type de système sous-jacent d’actuel Type objet est identique au type de système sous-jacent du type spécifié Object.

Espace de noms:   System
Assembly:  mscorlib (dans mscorlib.dll)

public override bool Equals(
	object o
)

Paramètres

o
Type: System.Object

Objet dont le type de système sous-jacent doit être comparé au type de système sous-jacent du Type actuel. Pour que la comparaison réussisse, o doit pouvoir être effectué ou converti en un objet de type Type.

Valeur de retour

Type: System.Boolean

true si le type de système sous-jacent de o est identique au type de système sous-jacent du Type actuel ; sinon, false. Cette méthode retourne également false si :.

  • o a la valeur null.

  • o ne peut pas être effectué ou converti en un Type objet.

Cette méthode substitue Object.Equals. Il convertit o à un objet de type Type et appelle le Type.Equals(Type) (méthode).

L’exemple suivant utilise Equals(Object) pour comparer différentes Type avec différentes instances de l’objet 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.

Deux choses sont particulièrement important de noter à propos de l’exemple :

  • La comparaison d’un Type objet qui représente un entier avec un TypeInfo objet qui représente un entier en retour true car TypeInfo est dérivée de Type.

  • La comparaison d’un Type objet qui représente un IList<T> objet (un type générique ouvert) avec un List(Of String) (un type générique fermé) renvoie false.

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: