我是C#的新手。
我知道在vb.net中,我可以这样做:
Dim guid as string = System.Guid.NewGuid.ToString
在C#中,我正在努力做到
String guid = System.Guid.NewGuid().ToString;
但我得到一个“无法将方法组'ToString'转换为非委托类型'字符串'。你打算调用该方法吗?”错误。
你在()
之后错过了ToString
,它将它标记为函数调用与函数引用(传递给代理的那种),顺便说一句,这就是为什么c#没有AddressOf
运算符,它隐含在你如何键入它。
试试这个:
string guid = System.Guid.NewGuid().ToString();
根据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}
在Visual Basic中,您可以调用无参数的方法而不使用大括号(()
)。在C#中,它们是强制性的。所以你应该写:
String guid = System.Guid.NewGuid().ToString();
如果没有大括号,您将方法本身(而不是其结果)分配给变量guid
,显然该方法无法转换为String
,因此错误。
String guid = System.Guid.NewGuid().ToString();
否则它是一个代表。
你在ToString的末尾缺少()。
你需要
String guid = System.Guid.NewGuid().ToString();
你写了吗?
String guid = System.Guid.NewGuid().ToString;
要么
String guid = System.Guid.NewGuid().ToString();
注意括号
Guid guidId = Guid.Parse("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
string guidValue = guidId.ToString("D"); //return with hyphens
以下是每个格式说明符的输出示例:
N: cd26ccf675d64521884f1693c62ed303
D: cd26ccf6-75d6-4521-884f-1693c62ed303
B: {cd26ccf6-75d6-4521-884f-1693c62ed303}
P: (cd26ccf6-75d6-4521-884f-1693c62ed303)
X: {0xcd26ccf6,0x75d6,0x4521,{0x88,0x4f,0x16,0x93,0xc6,0x2e,0xd3,0x03}}
默认值为D
。