Nullable<T>.HasValue Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera wartość wskazującą, czy bieżący Nullable<T> obiekt ma prawidłową wartość jego typu bazowego.
public:
property bool HasValue { bool get(); };
public bool HasValue { get; }
member this.HasValue : bool
Public ReadOnly Property HasValue As Boolean
Wartość właściwości
true
jeśli bieżący Nullable<T> obiekt ma wartość; false
jeśli bieżący Nullable<T> obiekt nie ma wartości.
Przykłady
W poniższym przykładzie użyto HasValue właściwości Nullable<int>
obiektu (Nullable(Of Integer)
w Visual Basic), aby określić, czy ma wyświetlać właściwość obiektuValue, czy jej GetValueOrDefault właściwość.
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
Uwagi
HasValue Jeśli właściwość to true
, można uzyskać dostęp do wartości bieżącego Nullable<T> Value obiektu za pomocą właściwości . W przeciwnym razie próba uzyskania dostępu do jego wartości zgłasza InvalidOperationException wyjątek.