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.
Это свойство доступно только для чтения.