Ler em inglês

Compartilhar via


Type.IsAbstract Propriedade

Definição

Obtém um valor que indica se o Type é abstrato e deve ser substituído.

C#
public bool IsAbstract { get; }

Valor da propriedade

true se o Type for abstrato; caso contrário, false.

Implementações

Exemplos

O exemplo a seguir cria uma matriz de Type objetos que representam os seguintes tipos:contém o tipo retorna true se o objeto especificado for abstract; caso contrário, ele retorna false.

  • AbstractClass, uma classe abstrata (uma classe marcada como abstract em C# e MustInherit no Visual Basic).

  • DerivedClass, uma classe que herda de AbstractClass.

  • SingleClass, uma classe não herdável. ele é definido como sealed em C# e NotInheritable no Visual Basic.

  • ITypeInfo, uma interface .

  • ImplementingClass, uma classe que implementa a ITypeInfo interface .

O método retorna true apenas para AbstractClass, a classe abstrata e ITypeInfo, a 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

Comentários

A IsAbstract propriedade retorna true nos seguintes casos:

  • O tipo atual é abstrato; ou seja, ele não pode ser instanciado, mas só pode servir como a classe base para classes derivadas. Em C#, as classes abstratas são marcadas com o palavra-chave abstrato; em F#, elas são marcadas com o atributo AbstractClass; no Visual Basic, são marcadas com a palavra-chave MustInherit.

  • O tipo atual é uma interface.

Caso o Type atual represente um parâmetro de tipo na definição de um tipo genérico ou um método genérico, esta propriedade sempre retorna false.

Aplica-se a

Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.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

Confira também