2010-01-01 37 views

Respuesta

29

Ver MSDN. En este caso, simplemente use myNullableVariable.Value (si está seguro de que tiene un valor) o (myNullableVariable.HasValue)?myNullableVariable.Value:somedefaulthere si no lo está.

También se puede utilizar GetValueOrDefault() si uno no le importa si el valor predeterminado es un valor específico cuando la anulable realmente es nulo.

La última forma de hacerlo es la siguiente: myNullableVariable.Value ?? defaultvalue.

Sede, técnicamente una variable MyType? es un Nullable<MyType> bajo las sábanas. No hay conversiones implícitas o explícitas entre los dos, por lo que lo que debe hacer es extraer el valor del Nullable manualmente. La tercera forma que enumeré es la forma más concisa (¿y la mejor?) De hacerlo, para eso probablemente sería mejor en la mayoría de los casos.

+0

Gracias por la respuesta, pero podría explicar un poco más? – Dooie

+0

¿Eso ayuda? – RCIX

+0

Ok, lo tengo ahora ... gracias :) – Dooie

0

Primera inicializar la variable GUID.

Guid yourGuid= Guid.NewGuid() 

valor a continuación, establecer en lo que usted quiere para, por ejemplo:? '? System.Guid'

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

Uso GUID de la propiedad .Value para convertir a 'System.Guid'. como en el siguiente ejemplo

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

no se puede convertir de 'System.Guid?' a 'System.Guid'

que están tratando de ahorrar tipo System.Guid? a un sistema de tipos.Guid dentro de su modelo puede editar System.Guid? a System.Guid eliminando el signo de interrogación.

o RCIX respuesta anterior

+1

La respuesta fue aceptada hace 7 años, lo nuevo valor trae esto? –

Cuestiones relacionadas