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

问题描述 投票:44回答:9

我是C#的新手。

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

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

在C#中,我正在努力做到

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

但我得到一个“无法将方法组'ToString'转换为非委托类型'字符串'。你打算调用该方法吗?”错误。

c# string guid
9个回答
78
投票

你在()之后错过了ToString,它将它标记为函数调用与函数引用(传递给代理的那种),顺便说一句,这就是为什么c#没有AddressOf运算符,它隐含在你如何键入它。

试试这个:

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

77
投票

根据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}

8
投票

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

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

如果没有大括号,您将方法本身(而不是其结果)分配给变量guid,显然该方法无法转换为String,因此错误。


6
投票
String guid = System.Guid.NewGuid().ToString();

否则它是一个代表。


5
投票

你在ToString的末尾缺少()。


5
投票

你需要

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

4
投票

你写了吗?

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

要么

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

注意括号


3
投票
Guid guidId = Guid.Parse("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx");
string guidValue = guidId.ToString("D"); //return with hyphens

2
投票

以下是每个格式说明符的输出示例:

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

Run this yourself

© www.soinside.com 2019 - 2024. All rights reserved.