繁体   English   中英

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

[英]Cannot convert from out System.Guid? to System.Guid

我正在尝试将字符串解析为可为空的 guid。 根据 TryParse 结果,可为空的 guid 应存储值或为 null。

private Guid? GetData()
{
    string carName = "Volvo";
    Guid? data = Guid.TryParse(carName, out data) ? (Guid?)data : null;
    
    return data;
}

我收到带有消息的out data的编译时错误

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

您需要使用不同的变量名:

Guid? data = Guid.TryParse(carName, out Guid _data) ? (Guid?)_data : null;

目前,您将data用于两者

  • 最终结果( Guid? )和
  • TryParseout参数(需要是Guid ,而不是Guid? )。

让它简单、合乎逻辑、可读

if (Guid.TryParse(carName, out Guid g)
    return g;
return null;

如果 3 行打扰你

return Guid.TryParse(carName, out Guid g) ? g : (Guid?)null;

最好不要在一行中做这么多。 这将使其更易于阅读和理解。

private Guid? GetData()
    {
        string carName = "Volvo";
        // First try to parse the string into a guid
        var canParse = Guid.TryParse(carName, out var data);

        // Return either the converted value or null
        return canParse ? data : null;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM