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

Doo*_*oie 18 .net guid

有谁知道如何处理这个错误?

cannot convert from 'System.Guid?' to 'System.Guid'
Run Code Online (Sandbox Code Playgroud)

RCI*_*CIX 42

请参阅MSDN.

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

GetValueOrDefault()如果一个人不关心当nullable真的为null时默认值是一个特定值,那么也可以使用.

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

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


Nir*_*edi 5

使用Guid..Value属性转换“ System.Guid?” 到“ System.Guid”。如以下示例

 Obj GetValue(Guid yourID)
{
return FetchObject(yourID)
}
Void main()
{
Guid? passvalue;
Obj test = GetValue(passvalue.Value);
}
Run Code Online (Sandbox Code Playgroud)