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


Type.IsValueType Свойство

Определение

Возвращает значение, позволяющее определить, является ли объект Type типом значения.

public:
 property bool IsValueType { bool get(); };
public bool IsValueType { get; }
member this.IsValueType : bool
Public ReadOnly Property IsValueType As Boolean

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

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

Реализации

Примеры

В следующем примере создается переменная типа MyEnum, проверяется IsValueType свойство и отображается результат.

using namespace System;

// Declare an enum type.
public enum class NumEnum
{
   One, Two
};

int main()
{
    bool flag = false;
    NumEnum testEnum = NumEnum::One;
      
    // Get the type of testEnum.
    Type^ t = testEnum.GetType();
      
    // Get the IsValueType property of the testEnum
    // variable.
    flag = t->IsValueType;
    Console::WriteLine("{0} is a value type: {1}", t->FullName, flag);
}
using System;

// Declare an enum type.
enum NumEnum { One, Two }

public class Example
{

    public static void Main(string []args)
    {
        bool flag = false;
        NumEnum testEnum = NumEnum.One;
        // Get the type of testEnum.
        Type t = testEnum.GetType();
        // Get the IsValueType property of the testEnum variable.
        flag = t.IsValueType;
        Console.WriteLine("{0} is a value type: {1}", t.FullName, flag);
    }
}
// The example displays the following output:
//        NumEnum is a value type: True
// Declare an enum type.
type NumEnum = One = 1 | Two = 2

let testEnum = NumEnum.One
// Get the type of testEnum.
let t = testEnum.GetType()
// Get the IsValueType property of the testEnum variable.
let flag = t.IsValueType
printfn $"{t.FullName} is a value type: {flag}"
// The example displays the following output:
//        NumEnum is a value type: True
' Declare an enum type.
Enum NumEnum
    One
    Two
End Enum
    
Public Class Example

    Public Shared Sub Main()
        Dim flag As Boolean = False
        Dim testEnum As NumEnum = NumEnum.One
        ' Get the type of myTestEnum.
        Dim t As Type = testEnum.GetType()
        ' Get the IsValueType property of the myTestEnum variable.
         flag = t.IsValueType()
         Console.WriteLine("{0} is a value type: {1}", t.FullName, flag)
     End Sub 
 End Class  
' The example displays the following output:
'       NumEnum is a value type: True

Комментарии

Типы значений — это типы, представленные в виде последовательностей битов; Типы значений не являются классами или интерфейсами. В некоторых языках программирования типы значений называются "структуры". Перечисления — это особый случай типов значений.

Это свойство возвращает значение false для ValueType класса , так как ValueType сам по себе не является типом значения. это базовый класс для всех типов значений, поэтому ему можно назначить любой тип значения. Это было бы невозможно, если ValueType бы сам был типом значения. Типы значений упаковываются, если они назначены полю типа ValueType.

Это свойство возвращает для true перечислений, но не для Enum самого типа. Пример, демонстрирующий такое поведение, см. в разделе IsEnum.

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

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

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