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