2010-01-01 5 views

Répondre

29

Voir MSDN.

Dans ce cas, utilisez simplement myNullableVariable.Value (si vous êtes sûr qu'il a une valeur), ou (myNullableVariable.HasValue)?myNullableVariable.Value:somedefaulthere si vous ne l'êtes pas.

On peut aussi utiliser GetValueOrDefault() si on s'en fout si la valeur par défaut est une valeur spécifique alors que nullable est vraiment nul.

La dernière façon de le faire est la suivante: myNullableVariable.Value ?? defaultvalue.

Voir, techniquement une variable MyType? est un Nullable<MyType> sous les couvertures. Il n'y a pas de conversions implicites ou explicites entre les deux, ce que vous devez faire est d'extraire manuellement la valeur de Nullable. La troisième manière que j'ai énumérée est la manière la plus succincte (et la meilleure?) De le faire, à cela serait probablement le meilleur dans la plupart des cas.

+0

Merci pour la réponse, mais pourriez-vous expliquer un peu plus? – Dooie

+0

Cela aide-t-il? – RCIX

+0

Ok, je l'ai maintenant ... merci :) – Dooie

0

Initialisez d'abord la variable guid.

Guid yourGuid= Guid.NewGuid() 

valeur définie alors dans ce que vous voulez pour par exemple: '? System.Guid'

Guid defaultId = Guid.NewGuid(); 
if (customerRow.GuardianState.Length > 2) { 
Guid StateId = record.StateId ?? defaultId;} 
4

Utilisation Guid propriété .Value pour convertir à 'System.Guid'. comme l'exemple suivant

Obj GetValue(Guid yourID) 
{ 
return FetchObject(yourID) 
} 
Void main() 
{ 
Guid? passvalue; 
Obj test = GetValue(passvalue.Value); 
} 
-1

Impossible de convertir à partir de 'System.Guid?' à 'System.Guid'

vous essayez d'enregistrer le type System.Guid? à un système de type.Guid à l'intérieur de votre modèle, vous pouvez modifier System.Guid? à System.Guid en supprimant le point d'interrogation.

ou réponse RCIX ci-dessus

+1

La réponse a été acceptée il ya 7 ans, quelle nouvelle valeur cela apporte-t-il? –

Questions connexes