我是 C # 的新手。
我知道在 vb.net,我可以这样做:
Dim guid as string = System.Guid.NewGuid.ToString
在 C # ,我正在尝试
String guid = System.Guid.NewGuid().ToString;
但我得到一个“ 无法将方法组“ ToString”转换为非委托类型“ string”。是否打算调用该方法?”错误。
String guid = System.Guid.NewGuid().ToString();
否则就是个代表。
你需要
在 ToString 的末尾缺少()。
ToString之后的 ()标记为函数调用还是函数引用(传递给委托的那种) ,这就是为什么 c # 没有 AddressOf操作符的原因,键入方式暗示了这一点。
ToString
()
AddressOf
试试这个:
string guid = System.Guid.NewGuid().ToString();
你有没有写
或者
注意括号。
在 VisualBasic 中,可以不使用大括号(())调用无参数方法。在 C # ,它们是强制性的。所以你应该写:
如果没有大括号,就是将方法本身(而不是它的结果)赋给变量 guid,显然方法无法转换为 String,因此就会出现错误。
guid
String
根据 MSDN,方法 Guid.ToString(string format)根据提供的格式说明符返回该 Guid 实例值的字符串表示形式。
Guid.ToString(string format)
例子:
guidVal.ToString()
guidVal.ToString("D")
00000000-0000-0000-0000-000000000000
guidVal.ToString("N")
00000000000000000000000000000000
guidVal.ToString("B")
{00000000-0000-0000-0000-000000000000}
guidVal.ToString("P")
(00000000-0000-0000-0000-000000000000)
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。
D
自己运行这个。
遵守声纳的规则,只要你能保护自己,就应该使用 只要有可能,就像 DateTime.ToString()。
DateTime.ToString()
所以关于其他你可以用的答案:
guid.ToString("", CultureInfo.InvariantCulture)
其中 ""可以替换为: N,D,B,P 和 X 更多信息见 此评论。
""
例子 给你