Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Nullable<T>.Value Property

Definition

Namespace:
System
Assemblies:
mscorlib.dll, System.Runtime.dll
Assemblies:
netstandard.dll, System.Runtime.dll
Assembly:
System.Runtime.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
Nullable.cs
Source:
Nullable.cs
Source:
Nullable.cs
Source:
Nullable.cs
Source:
Nullable.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Gets the value of the current Nullable<T> object if it has been assigned a valid underlying value.

public:
 property T Value { T get(); };
public T Value { get; }
member this.Value : 'T
Public ReadOnly Property Value As T

Property Value

T

The value of the current Nullable<T> object if the HasValue property is true. An exception is thrown if the HasValue property is false.

Exceptions

The HasValue property is false.

Examples

The following example uses the HasValue property of a Nullable<int> (Nullable(Of Integer) in Visual Basic) object to determine whether it should display the object's Value property or its GetValueOrDefault() property.

using System;

public class Example
{
 public static void Main()
 {
 Nullable<int> n1 = new Nullable<int>(10);
 Nullable<int> n2 = null;
 Nullable<int> n3 = new Nullable<int>(20);
 n3 = null;
 Nullable<int>[] items = { n1, n2, n3 };

 foreach (var item in items) {
 Console.WriteLine("Has a value: {0}", item.HasValue);
 if (item.HasValue) {
 Console.WriteLine("Type: {0}", item.GetType().Name);
 Console.WriteLine("Value: {0}", item.Value);
 }
 else {
 Console.WriteLine("Null: {0}", item == null);
 Console.WriteLine("Default Value: {0}", item.GetValueOrDefault());
 }
 Console.WriteLine();
 }
 }
}
// The example displays the following output:
// Has a value: True
// Type: Int32
// Value: 10
//
// Has a value: False
// Null: True
// Default Value: 0
//
// Has a value: False
// Null: True
// Default Value: 0
open System

let n1 = Nullable 10
let n2 = Nullable()
let mutable n3 = Nullable 20
n3 <- Nullable()
let items = [| n1; n2; n3 |]

for item in items do
 printfn $"Has a value: {item.HasValue}"
 if item.HasValue then
 printfn $"Type: {item.GetType().Name}"
 printfn $"Value: {item.Value}"
 else
 printfn $"Null: {item = Nullable()}"
 printfn $"Default Value: {item.GetValueOrDefault()}"
 printfn ""
// The example displays the following output:
// Has a value: True
// Type: Int32
// Value: 10
//
// Has a value: False
// Null: True
// Default Value: 0
//
// Has a value: False
// Null: True
// Default Value: 0
Module Example
 Public Sub Main()
 Dim n1 As New Nullable(Of Integer)(10)
 Dim n2 As Nullable(Of Integer)
 Dim n3 As New Nullable(Of Integer)(20)
 n3 = Nothing
 Dim items() As Nullable(Of Integer) = { n1, n2, n3 }

 For Each item In items
 Console.WriteLine("Has a value: {0}", item.HasValue)
 If item.HasValue Then
 Console.WriteLine("Type: {0}", item.GetType().Name)
 Console.WriteLine("Value: {0}", item.Value)
 Else
 Console.WriteLine("Null: {0}", item Is Nothing)
 Console.WriteLine("Default Value: {0}", item.GetValueOrDefault())
 End If
 Console.WriteLine()
 Next 
 End Sub
End Module
' The example displays the following output:
' Has a value: True
' Type: Int32
' Value: 10
' 
' Has a value: False
' Null: True
' Default Value: 0
' 
' Has a value: False
' Null: True
' Default Value: 0

Remarks

If a value of type T has not been assigned to the Nullable<T> object, you can compare it to null and retrieve its HasValue property, but you cannot access its Value property or call its other members.

Applies to


Feedback

Was this page helpful?