Lire en anglais

Partager via


Type.IsAbstract Propriété

Définition

Obtient une valeur indiquant si le Type est abstrait et doit être substitué.

C#
public bool IsAbstract { get; }

Valeur de propriété

true si le Type est abstrait ; sinon, false.

Implémente

Exemples

L’exemple suivant crée un tableau d’objets Type qui représentent les types suivants :contains type retourne true si l’objet spécifié est abstract; sinon, il retourne false.

  • AbstractClass, une classe abstraite (classe marquée comme abstract en C# et MustInherit en Visual Basic).

  • DerivedClass, classe qui hérite de AbstractClass.

  • SingleClass, une classe non héritable. il est défini comme sealed en C# et NotInheritable en Visual Basic.

  • ITypeInfo, une interface.

  • ImplementingClass, classe qui implémente l’interface ITypeInfo .

La méthode retourne true uniquement pour AbstractClass, la classe abstraite et ITypeInfo, l’interface.

C#
using System;

public abstract class AbstractClass
{}

public class DerivedClass : AbstractClass
{}

public sealed class SingleClass
{}

public interface ITypeInfo
{
   string GetName();
}

public class ImplementingClass : ITypeInfo
{
   public string GetName()
   {
      return this.GetType().FullName;
   }
}

delegate string InputOutput(string inp);

public class Example
{
   public static void Main()
   {
      Type[] types= { typeof(AbstractClass),
                      typeof(DerivedClass),
                      typeof(ITypeInfo),
                      typeof(SingleClass),
                      typeof(ImplementingClass),
                      typeof(InputOutput) };
      foreach (var type in types)
         Console.WriteLine("{0} is abstract: {1}",
                           type.Name, type.IsAbstract);
   }
}
// The example displays the following output:
//       AbstractClass is abstract: True
//       DerivedClass is abstract: False
//       ITypeInfo is abstract: True
//       SingleClass is abstract: False
//       ImplementingClass is abstract: False
//       InputOutput is abstract: False

Remarques

La IsAbstract propriété retourne true dans les cas suivants :

  • Le type actuel est abstrait ; autrement dit, il ne peut pas être instancié, mais peut uniquement servir de classe de base pour les classes dérivées. En C#, les classes abstraites sont marquées avec la mot clé abstraite ; en F#, elles sont marquées avec l’attribut AbstractClass ; en Visual Basic, elles sont marquées avec le mot clé MustInherit.

  • Le type actuel est une interface.

Si le actuel Type représente un paramètre de type dans la définition d’un type générique ou d’une méthode générique, cette propriété retourne falsetoujours .

S’applique à

Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.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, 4.8.1
.NET Standard 2.0, 2.1

Voir aussi