Nullable<T>.HasValue Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Geçerli Nullable<T> nesnenin temel alınan türünde geçerli bir değere sahip olup olmadığını gösteren bir değer alır.
public:
property bool HasValue { bool get(); };
public bool HasValue { get; }
member this.HasValue : bool
Public ReadOnly Property HasValue As Boolean
Özellik Değeri
true
geçerli Nullable<T> nesnenin bir değeri varsa; false
geçerli Nullable<T> nesnenin değeri yoksa.
Örnekler
Aşağıdaki örnek, nesnenin özelliğini mi yoksa özelliğini GetValueOrDefault mi görüntülemesi gerektiğini belirlemek için (Nullable(Of Integer)
Nullable<int>
Visual Basic) nesnesinin Value özelliğini kullanırHasValue.
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
Açıklamalar
HasValue özelliği isetrue
, geçerli Nullable<T> nesnenin değerine özelliğiyle Value erişilebilir. Aksi takdirde, değerine erişmeye çalışmak bir InvalidOperationException özel durum oluşturur.