web-dev-qa-db-fra.com

Vérifiez si Nullable Guid est vide en c #

Citant une réponse de this question.

Guid est un type de valeur, donc une variable de type Guid ne peut pas être nulle pour commencer.

Et si je vois ça?

public Nullable<System.Guid> SomeProperty { get; set; }

comment dois-je vérifier si cela est nul? Comme ça?

(SomeProperty == null)

ou comme ça?

(SomeProperty == Guid.Empty)
17
Saturnix

SomeProperty.HasValue Je pense que c'est ce que vous recherchez.

EDIT: btw, vous pouvez écrire System.Guid? au lieu de Nullable<System.Guid>;)

21
dotixx

Si vous voulez être sûr, vous devez vérifier les deux

SomeProperty == null || SomeProperty == Guid.Empty

Parce qu'il peut être null 'Nullable' et ce peut être un GUID quelque chose comme ça {00000000-0000-0000-0000-000000000000} vide

41
Sir l33tname

Notez que HasValue renverra true pour un Guid vide.

bool validGuid = SomeProperty.HasValue && SomeProperty != Guid.Empty;

7
DevDave

Vérifier Nullable<T>.HasValue

if(!SomeProperty.HasValue ||SomeProperty.Value == Guid.Empty)
{
 //not valid GUID
}
else
{
 //Valid GUID
}
3
Sriram Sakthivel

Vous devez utiliser la propriété HasValue:

SomeProperty.HasValue

Par exemple:

if (SomeProperty.HasValue)
{
    // Do Something
}
else
{
    // Do Something Else
}

FYI

public Nullable<System.Guid> SomeProperty { get; set; }

est équivalent à:

public System.Guid? SomeProperty { get; set; }

La référence MSDN: http://msdn.Microsoft.com/en-us/library/sksw8094.aspx

2
Mr. Mr.