Type.IsAbstract Właściwość

Definicja

Pobiera wartość wskazującą, czy Type element jest abstrakcyjny i musi zostać zastąpiony.

C#
public bool IsAbstract { get; }

Wartość właściwości

truejeśli element jest abstrakcyjnyType; w przeciwnym razie . false

Implementuje

Przykłady

Poniższy przykład tworzy tablicę Type obiektów, które reprezentują następujące typy:zawiera wyrażenie zwracane true , jeśli określony obiekt to abstract; w przeciwnym razie zwraca wartość false.

  • AbstractClass, klasa abstrakcyjna (klasa oznaczona jako abstract w języku C# i MustInherit Visual Basic).

  • DerivedClass, klasa dziedziczona z klasy AbstractClass.

  • SingleClass, klasa nie dziedziczona. Jest ona zdefiniowana w sealed języku C# i NotInheritable w Visual Basic.

  • ITypeInfo, interfejs.

  • ImplementingClass, klasa, która implementuje ITypeInfo interfejs.

Metoda zwraca true tylko dla AbstractClassklasy , klasy abstrakcyjnej i ITypeInfointerfejsu .

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

Uwagi

Właściwość IsAbstract zwraca true następujące przypadki:

  • Bieżący typ jest abstrakcyjny; oznacza to, że nie można utworzyć wystąpienia, ale może służyć tylko jako klasa bazowa dla klas pochodnych. W języku C# klasy abstrakcyjne są oznaczone abstrakcyjnym słowem kluczowym; w języku F# są one oznaczone atrybutem AbstractClass ; w Visual Basic są one oznaczone słowem kluczowym MustInherit .

  • Bieżący typ jest interfejsem.

Jeśli bieżący Type reprezentuje parametr typu w definicji typu ogólnego lub metody ogólnej, ta właściwość zawsze zwraca wartość false.

Dotyczy

Produkt Wersje
.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

Zobacz też