2010-01-01 3 views

ответ

29

См. MSDN.

В этом случае просто используйте myNullableVariable.Value (если вы уверены, что он имеет значение), или (myNullableVariable.HasValue)?myNullableVariable.Value:somedefaulthere, если вы этого не сделали.

Можно также использовать GetValueOrDefault(), если все равно, если значение по умолчанию является конкретным значением, когда значение nullable действительно равно null.

Последний способ сделать это: myNullableVariable.Value ?? defaultvalue.

См. Технически a MyType? переменная Nullable<MyType> под обложками. Между ними нет явных или явных отливок, поэтому вам нужно извлечь значение из Nullable вручную. Третий способ, который я перечислял, является наиболее кратким (и лучшим?) Способом сделать это, что, вероятно, будет лучше всего в большинстве случаев.

+0

Спасибо за ответ, но не могли бы вы объяснить немного больше? – Dooie

+0

Помогает ли это? – RCIX

+0

Хорошо, я получил его сейчас ... спасибо :) – Dooie

0

Сначала проинтегрируйте переменную направляющей.

Guid yourGuid= Guid.NewGuid() 

затем установите значение в то, что вы хотите для, например:? '? System.Guid'

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

Использование Guid .Value собственности для преобразования to 'System.Guid'. как следующий пример

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

не может преобразовать из списка 'System.Guid?' to 'System.Guid'

Вы пытаетесь сохранить тип System.Guid? к типу system.Guid внутри вашей модели вы можете редактировать System.Guid? на System.Guid, удалив знак вопроса.

или RCIX ответ выше

+1

Ответ был принят 7 лет назад, какое новое значение это приносит? –

Смежные вопросы