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.

You can call the M:System.Type.IsSubclassOf(System.Type) method to determine any of the following:

  • Whether one class derives from another.

  • Whether a type derives from T:System.ValueType. However, the P:System.Type.IsValueType is a more efficient way to determine whether a type is a value type.

  • Whether a type derives from T:System.Enum. However, the P:System.Type.IsEnum method is a more efficient way to determine whether a type is an enumeration.

  • Whether a type is a delegate, that is, whether it derives from either T:System.Delegate or T:System.MulticastDelegate.

The M:System.Type.IsSubclassOf(System.Type) method cannot be used to determine whether an interface derives from another interface, or whether a class implements an interface. Use theM:System.Type.IsAssignableFrom(System.Type) method for that purpose, as the following example shows.

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

If the current T:System.Type represents a type parameter in the definition of a generic type or generic method, it derives from its class constraint or from T:System.Object if it has no class constraint.

System_CAPS_noteRemarque

Except when used with interfaces, M:System.Type.IsSubclassOf(System.Type) is the converse of M:System.Type.IsAssignableFrom(System.Type). That is, if t1.IsSubclassOf(t2) is true, then t2.IsAssignableFrom(t1) is also true.

This method can be overridden by a derived class.

The following example creates a class named Class1and a derived class named DerivedC1. It calls the M:System.Type.IsSubclassOf(System.Type) method to show that DerivedC1 is a subclass of 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: