Leer en inglés

Compartir a través de


Type.IsAbstract Propiedad

Definición

Obtiene un valor que indica si Type es abstracto y se debe invalidar.

C#
public bool IsAbstract { get; }

Valor de propiedad

Es true si Type es abstracto; de lo contrario, es false.

Implementaciones

Ejemplos

En el ejemplo siguiente se crea una matriz de Type objetos que representan los siguientes tipos:contains type devuelve true si el objeto especificado es abstract; de lo contrario, devuelve false.

  • AbstractClass, una clase abstracta (una clase marcada como abstract en C# y MustInherit en Visual Basic).

  • DerivedClass, una clase que hereda de AbstractClass.

  • SingleClass, una clase no heredable. se define como sealed en C# y NotInheritable en Visual Basic.

  • ITypeInfo, una interfaz.

  • ImplementingClass, una clase que implementa la ITypeInfo interfaz .

El método devuelve true solo para AbstractClass, la clase abstracta y ITypeInfo, la interfaz .

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

Comentarios

La IsAbstract propiedad devuelve true en los casos siguientes:

  • El tipo actual es abstracto; es decir, no se puede crear una instancia, pero solo puede servir como clase base para las clases derivadas. En C#, las clases abstractas se marcan con la palabra clave abstract; en F#, se marcan con el atributo AbstractClass ; en Visual Basic, se marcan con la palabra clave MustInherit .

  • El tipo actual es una interfaz.

Si el objeto actual Type representa un parámetro de tipo en la definición de un tipo genérico o un método genérico, esta propiedad siempre devuelve false.

Se aplica a

Producto Versiones
.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

Consulte también