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, 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

Confira também