2010-01-01 8 views

risposta

29

Vedere MSDN.

In tal caso, utilizzare semplicemente myNullableVariable.Value (se si è sicuri che abbia un valore) o (myNullableVariable.HasValue)?myNullableVariable.Value:somedefaulthere in caso contrario.

Si può anche usare GetValueOrDefault() se non si cura se il valore predefinito è un valore specifico quando il nullable è veramente nullo.

L'ultimo modo per farlo è questo: myNullableVariable.Value ?? defaultvalue.

Vedere, tecnicamente una variabile MyType? è una Nullable<MyType> sotto le coperture. Non ci sono cast impliciti o espliciti tra i due, quindi quello che devi fare è estrarre il valore dal Nullable manualmente. Il terzo modo che ho elencato è il modo più succinto (e migliore?) Per farlo, probabilmente sarebbe il migliore nella maggior parte dei casi.

+0

Grazie per la risposta, ma si potrebbe spiegare un po 'di più? – Dooie

+0

Questo aiuto? – RCIX

+0

Ok, ho capito ora ... grazie :) – Dooie

0

Prima inizializzare la variabile guid.

Guid yourGuid= Guid.NewGuid() 

valore quindi impostare in ciò che si desidera per esempio:? '? System.Guid'

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

Usa Guid proprietà .Value per convertire a "System.Guid". come nell'esempio seguente

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

non può convertire da 'System.Guid?' a 'System.Guid'

si sta tentando di salvare il tipo System.Guid? a un sistema di tipo.Guido all'interno del tuo modello puoi modificare System.Guid? a System.Guid rimuovendo il punto interrogativo.

o RCIX risposta di cui sopra

+1

La risposta è stata accettata 7 anni fa, quale nuovo valore porta? –