我是C#的新手。
我知道在vb.net中,我可以这样做:
Dim guid as string = System.Guid.NewGuid.ToString
在C#中,我正在尝试
String guid = System.Guid.NewGuid().ToString;
但我得到一个“无法将方法组'ToString'转换为非委托类型'字符串'。你打算调用方法吗?”错误。
答案 0 :(得分:75)
根据MSDN,方法Guid.ToString(string format)
根据提供的格式说明符返回此Guid实例值的字符串表示。
示例:
guidVal.ToString()
或guidVal.ToString("D")
返回32位数字
用连字符分隔:00000000-0000-0000-0000-000000000000
guidVal.ToString("N")
返回32位数:00000000000000000000000000000000
guidVal.ToString("B")
返回由连字符分隔的32位数字,用大括号括起来:{00000000-0000-0000-0000-000000000000}
答案 1 :(得分:74)
你错过()
之后的ToString
,它将它标记为函数调用与函数引用(传递给代理的类型),顺便说一句,这就是为什么c#没有{{1}操作符,它是如何键入它的。
试试这个:
AddressOf
答案 2 :(得分:8)
在Visual Basic中,您可以调用无参数的方法而不使用大括号(()
)。在C#中,它们是强制性的。所以你应该写:
String guid = System.Guid.NewGuid().ToString();
如果没有大括号,您将方法本身(而不是其结果)分配给变量guid
,显然该方法无法转换为String
,因此错误。
答案 3 :(得分:6)
String guid = System.Guid.NewGuid().ToString();
否则它是代表。
答案 4 :(得分:5)
你需要
String guid = System.Guid.NewGuid().ToString();
答案 5 :(得分:5)
你在ToString的末尾缺少()。
答案 6 :(得分:4)
你写过吗
String guid = System.Guid.NewGuid().ToString;
或
String guid = System.Guid.NewGuid().ToString();
注意括号
答案 7 :(得分:3)
Guid guidId = Guid.Parse("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
string guidValue = guidId.ToString("D"); //return with hyphens
答案 8 :(得分:2)
遵循Sonar规则,您应该尽可能保护自己并使用
System.globalisation
尽可能DateTime.ToString()
。
因此,您可以使用其他答案:
guid.ToString("", CultureInfo.InvariantCulture)
其中""
可以替换为:N,D,B,P和X,有关更多信息,请参见https://github.com/mifi/stacktracify。