Прочитать на английском

Поделиться через


Type.IsClass Свойство

Определение

Получает значение, позволяющее определить, является объект Type классом или делегатом (иными словами, не является типом значения или интерфейсом).

C#
public bool IsClass { get; }

Значение свойства

Значениеtrue , если объект Type является классом; в противном случае — значение false.

Реализации

Примеры

В следующем примере создается экземпляр типа и указывается, является ли тип классом.

C#
using System;
using System.Reflection;

public  class MyDemoClass
{
}

public class MyTypeClass
{
    public static void Main(string[] args)
    {
        try
        {
            Type  myType = typeof(MyDemoClass);
            // Get and display the 'IsClass' property of the 'MyDemoClass' instance.
            Console.WriteLine("\nIs the specified type a class? {0}.", myType.IsClass);
        }
        catch(Exception e)
        {
            Console.WriteLine("\nAn exception occurred: {0}." ,e.Message);
        }
    }
}

Комментарии

Это свойство возвращает для true классов, а также делегатов. Он возвращает false типы значений (для структур и перечислений), даже если они упаковываются.

Если текущий Type объект представляет параметр типа в определении универсального типа или универсального метода, это свойство всегда возвращает значение true. Если текущий Type объект представляет сконструированный универсальный тип, это свойство возвращает значение true , если определение универсального типа является определением класса, то есть оно не определяет интерфейс или тип значения.

Примечание

Это свойство возвращает для Typetrue экземпляров, представляющих классы Enum и ValueType . Эти два класса являются базовыми типами для перечислений и типов значений соответственно, но они не являются перечислениями или типами значений. Дополнительные сведения см. в описаниях свойств IsValueType и IsEnum.

Значение TypeAttributes.ClassSemanticsMask перечисления различает объявление типа как класс или интерфейс. Однако классы и типы значений помечаются атрибутом TypeAttributes.Class . Если вы извлекаете значение свойства Attributes типа и используете TypeAttributes.ClassSemanticsMask значение для определения того, является ли тип классом, а не типом значения, необходимо также вызвать IsValueType свойство . Пример перечисления TypeAttributes содержит дополнительные сведения, а также описание.

Это свойство доступно только для чтения.

Применяется к

Продукт Версии
.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

См. также раздел