2010-01-01 20 views

回答

29

请参阅MSDN

在这种情况下,仅使用myNullableVariable.Value(如果您确定它有值)或(myNullableVariable.HasValue)?myNullableVariable.Value:somedefaulthere(如果不是)。

如果某人不关心默认值是否为特定值,且可为null时,也可以使用GetValueOrDefault()

最后一种方法是:myNullableVariable.Value ?? defaultvalue

从技术上来说,MyType?变量是Nullable<MyType>。两者之间没有隐式或明确的转换,因此您需要做的是手动从Nullable中提取值。我列出的第三种方式是最简洁(也是最好的)方法,因此在大多数情况下可能是最好的。

+0

感谢您的答复,但你能解释一下? – Dooie 2010-01-01 11:58:42

+0

这有帮助吗? – RCIX 2010-01-01 12:01:39

+0

好吧,我现在明白了......谢谢:) – Dooie 2010-01-01 12:02:02

0

首先初始化guid变量。 ?

Guid yourGuid= Guid.NewGuid() 

在您要为如再设置值: '?的System.Guid'

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

使用的Guid .Value属性转换到'System.Guid'。如下例

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

无法从'System.Guid?'转换到'System.Guid'

您正在尝试保存类型System.Guid?到一个类型system.Guid 你的模型里面你可以编辑System.Guid?通过删除问号到System.Guid。

或 RCIX回答上述

+1

答案在7年前被接受了,这会带来什么新的价值? – 2017-09-25 22:42:10

相关问题