有人知道如何处理这个错误吗?
cannot convert from 'System.Guid?' to 'System.Guid'
yiytaume1#
请参阅MSDN。在这种情况下,只需使用myNullableVariable.Value(如果您确定它有值),如果没有,则使用(myNullableVariable.HasValue)?myNullableVariable.Value:somedefaulthere。如果在nullable真的为null时,不关心默认值是否为特定值,也可以使用GetValueOrDefault()。最后一种方法是:myNullableVariable.Value ?? defaultvalue .请看,从技术上讲,MyType?变量实际上是Nullable<MyType>。两者之间没有隐式或显式的强制转换,因此您需要做的是手动从Nullable中提取值。我列出的第三种方法是最简洁(也是最好的?)的方法,在大多数情况下可能是最好的。
myNullableVariable.Value
(myNullableVariable.HasValue)?myNullableVariable.Value:somedefaulthere
GetValueOrDefault()
myNullableVariable.Value ?? defaultvalue
MyType?
Nullable<MyType>
Nullable
htrmnn0y2#
使用Guid?.Value属性将“System.Guid?”转换为“System.Guid”。如下例所示
Obj GetValue(Guid yourID) { return FetchObject(yourID) } Void main() { Guid? passvalue; Obj test = GetValue(passvalue.Value); }
mrwjdhj33#
首先初始化guid变量。
Guid yourGuid= Guid.NewGuid()
然后设置所需值,例如:
Guid defaultId = Guid.NewGuid(); if (customerRow.GuardianState.Length > 2) { Guid StateId = record.StateId ?? defaultId;}
5jdjgkvh4#
无法从“System.Guid?”转换为“System.Guid”您正尝试将类型System.Guid?保存到模型中的类型System.Guid,您可以通过删除问号将System.Guid?编辑为System.Guid。或上述RCIX答案
puruo6ea5#
只需在if语句中使用Nullable<T>.HasValue检查值是否为null,然后使用Nullable<T>.Value获取底层类型的值。
Nullable<T>.HasValue
Nullable<T>.Value
int? a = null; if(a.HasValue){ Console.WriteLine($"a has value {a.Value}"); } else { Console.WriteLine("No value found in a"); }
5条答案
按热度按时间yiytaume1#
请参阅MSDN。
在这种情况下,只需使用
myNullableVariable.Value
(如果您确定它有值),如果没有,则使用(myNullableVariable.HasValue)?myNullableVariable.Value:somedefaulthere
。如果在nullable真的为null时,不关心默认值是否为特定值,也可以使用
GetValueOrDefault()
。最后一种方法是:
myNullableVariable.Value ?? defaultvalue
.请看,从技术上讲,
MyType?
变量实际上是Nullable<MyType>
。两者之间没有隐式或显式的强制转换,因此您需要做的是手动从Nullable
中提取值。我列出的第三种方法是最简洁(也是最好的?)的方法,在大多数情况下可能是最好的。htrmnn0y2#
使用Guid?.Value属性将“System.Guid?”转换为“System.Guid”。如下例所示
mrwjdhj33#
首先初始化guid变量。
然后设置所需值,例如:
5jdjgkvh4#
无法从“System.Guid?”转换为“System.Guid”
您正尝试将类型System.Guid?保存到模型中的类型System.Guid,您可以通过删除问号将System.Guid?编辑为System.Guid。
或上述RCIX答案
puruo6ea5#
只需在if语句中使用
Nullable<T>.HasValue
检查值是否为null,然后使用Nullable<T>.Value
获取底层类型的值。