Nullable<T>.HasValue Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob das aktuelle Nullable<T>-Objekt einen gültigen Wert des zugrunde liegenden Typs hat.
public:
property bool HasValue { bool get(); };
public bool HasValue { get; }
member this.HasValue : bool
Public ReadOnly Property HasValue As Boolean
Eigenschaftswert
true
, wenn das aktuelle Nullable<T>-Objekt über einen Wert verfügt; false
, wenn das aktuelle Nullable<T>-Objekt über keinen Wert verfügt.
Beispiele
Im folgenden Beispiel wird die HasValue -Eigenschaft eines Nullable<int>
-Objekts (Nullable(Of Integer)
in Visual Basic) verwendet, um zu bestimmen, ob die -Eigenschaft oder GetValueOrDefault die -Eigenschaft des Value Objekts angezeigt werden soll.
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
Hinweise
Wenn die HasValue -Eigenschaft isttrue
, kann mit der -Eigenschaft auf den Value Wert des aktuellen Nullable<T> Objekts zugegriffen werden. Andernfalls wird beim Versuch, auf den Wert zuzugreifen, eine InvalidOperationException Ausnahme ausgelöst.