Lire en anglais

Partager via


Type.Equals Méthode

Définition

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

Surcharges

Equals(Type)

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

Equals(Object)

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

Equals(Type)

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

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

Paramètres

o
Type

Objet dont le type de système sous-jacent doit être comparé au type de système sous-jacent du Type actuel.

Retours

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.

Implémente

Exemples

L’exemple suivant utilise Equals pour comparer deux types.

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

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.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
.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
.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)

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

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

Paramètres

o
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 puisse être effectuée, o doit pouvoir être casté ou converti en objet de type Type.

Retours

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 casté ou converti en objet Type.

Implémente

Exemples

L’exemple suivant utilise Equals(Object) pour comparer différentes Type instances d’objets avec différentes Object instances.

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.

Deux choses méritent tout particulièrement de noter l’exemple :

  • Comparaison d’un Type objet qui représente un entier avec un TypeInfo objet qui représente un retour de type entier true , car TypeInfo est dérivé de Type .

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

Remarques

Cette méthode se substitue à Object.Equals. Il effectue un cast o vers un objet de type Type et appelle la Type.Equals(Type) méthode.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.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
.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
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0