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.IsSubclassOf méthode (Type)

 

Détermine si le Type actuel dérive du Type spécifié.

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

[ComVisibleAttribute(true)]
public virtual bool IsSubclassOf(
	Type c
)

Paramètres

c
Type: System.Type

Type à comparer avec le type actuel.

Valeur de retour

Type: System.Boolean

true si le Type actuel dérive de c ; sinon false. Cette méthode retourne également false si c et le Type actuel sont égaux.

Exception Condition
ArgumentNullException

c a la valeur null.

Vous pouvez appeler la IsSubclassOf méthode pour déterminer les éléments suivants :

  • Si une classe dérive d’un autre.

  • Si un type dérive de ValueType. Toutefois, le IsValueType est un moyen plus efficace pour déterminer si un type est un type valeur.

  • Si un type dérive de Enum. Toutefois, le IsEnum méthode est un moyen plus efficace pour déterminer si un type est une énumération.

  • Si un type est un délégué, autrement dit, si elle dérive Delegate ou MulticastDelegate.

Le IsSubclassOf méthode ne peut pas être utilisée pour déterminer si une interface dérive d’une autre interface, ou si une classe implémente une interface. Utilisez leIsAssignableFrom (méthode) à cette fin, comme le montre l’exemple suivant.

using System;

public interface IInterface
{
   void Display();
}

public class Implementation : IInterface
{
   public void Display()
   {
      Console.WriteLine("The implementation...");
   }
}

public class Example
{
   public static void Main()
   {
      Console.WriteLine("Implementation is a subclass of IInterface:   {0}",
                        typeof(Implementation).IsSubclassOf(typeof(IInterface)));
      Console.WriteLine("IInterface is assignable from Implementation: {0}",
                        typeof(IInterface).IsAssignableFrom(typeof(Implementation)));
   }
}
// The example displays the following output:
//       Implementation is a subclass of IInterface:   False
//       IInterface is assignable from Implementation: True

Si le courant Type représente un paramètre de type dans la définition d’un type générique ou de méthode générique, il dérive de sa contrainte de classe ou de System.Object si elle ne possède aucune contrainte de classe.

System_CAPS_noteRemarque

Sauf lorsqu’il est utilisé avec les interfaces, IsSubclassOf est l’inverse de IsAssignableFrom. Autrement dit, si t1.IsSubclassOf(t2) est true, puis t2.IsAssignableFrom(t1) est également true.

Cette méthode peut être substituée par une classe dérivée.

L’exemple suivant crée une classe nommée Class1et une classe dérivée nommée DerivedC1. Il appelle le IsSubclassOf méthode pour indiquer que DerivedC1 est une sous-classe de Class1.

using System;

public class Class1 { }
public class DerivedC1 : Class1 { }

class IsSubclassTest
{
   public static void Main()
   {
      Console.WriteLine("DerivedC1 subclass of Class1: {0}",
                         typeof(DerivedC1).IsSubclassOf(typeof(Class1)));
   }
}
// The example displays the following output:
//        DerivedC1 subclass of Class1: True

.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
Retour au début
Afficher: