如何在 C # 中将 GUID 转换为字符串?

我是 C # 的新手。

我知道在 vb.net,我可以这样做:

Dim guid as string = System.Guid.NewGuid.ToString

在 C # ,我正在尝试

String guid = System.Guid.NewGuid().ToString;

但我得到一个“ 无法将方法组“ ToString”转换为非委托类型“ string”。是否打算调用该方法?”错误。

208980 次浏览
String guid = System.Guid.NewGuid().ToString();

否则就是个代表。

你需要

String guid = System.Guid.NewGuid().ToString();

在 ToString 的末尾缺少()。

ToString之后的 ()标记为函数调用还是函数引用(传递给委托的那种) ,这就是为什么 c # 没有 AddressOf操作符的原因,键入方式暗示了这一点。

试试这个:

string guid = System.Guid.NewGuid().ToString();

你有没有写

String guid = System.Guid.NewGuid().ToString;

或者

String guid = System.Guid.NewGuid().ToString();

注意括号。

在 VisualBasic 中,可以不使用大括号(())调用无参数方法。在 C # ,它们是强制性的。所以你应该写:

String guid = System.Guid.NewGuid().ToString();

如果没有大括号,就是将方法本身(而不是它的结果)赋给变量 guid,显然方法无法转换为 String,因此就会出现错误。

根据 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}
  • guidVal.ToString("P")返回由连字符分隔的32个十六进制数字,用括号括起来: (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

自己运行这个。

遵守声纳的规则,只要你能保护自己,就应该使用 只要有可能,就像 DateTime.ToString()

所以关于其他你可以用的答案:

guid.ToString("", CultureInfo.InvariantCulture)

其中 ""可以替换为: N,D,B,P 和 X 更多信息见 此评论

例子 给你