Type.IsValueType Property

Definition

Gets a value indicating whether the Type is a value type.

public bool IsValueType { get; }

Property Value

true if the Type is a value type; otherwise, false.

Implements

Examples

The following example creates a variable of type MyEnum, checks for the IsValueType property, and displays the result.

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

Remarks

Value types are types that are represented as sequences of bits; value types are not classes or interfaces. Value types are referred to as "structs" in some programming languages. Enums are a special case of value types.

This property returns false for the ValueType class, because ValueType is not a value type itself. it's the base class for all value types, and therefore any value type can be assigned to it. This would not be possible if ValueType itself was a value type. Value types are boxed when they are assigned to a field of type ValueType.

This property returns true for enumerations, but not for the Enum type itself. For an example that demonstrates this behavior, see IsEnum.

This property is read-only.

Applies to

Product Versions
.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

See also