Nullable<T>.HasValue Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient une valeur indiquant si l'objet Nullable<T> actuel a une valeur valide de son type sous-jacent.
public:
property bool HasValue { bool get(); };
public bool HasValue { get; }
member this.HasValue : bool
Public ReadOnly Property HasValue As Boolean
Valeur de propriété
true
si l'objet Nullable<T> actuel a une valeur ; false
si l'objet Nullable<T> actuel n'a aucune valeur.
Exemples
L’exemple suivant utilise la HasValue propriété d’un Nullable<int>
objet (Nullable(Of Integer)
dans Visual Basic) pour déterminer s’il doit afficher la propriété de Value l’objet ou sa GetValueOrDefault propriété.
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
Remarques
Si la HasValue propriété est true
, la valeur de l’objet actuel Nullable<T> est accessible avec la Value propriété. Sinon, la tentative d’accès à sa valeur lève une InvalidOperationException exception.