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

Dav*_*ave 50 c# string guid

我是C#的新手.

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

Dim guid as string = System.Guid.NewGuid.ToString
Run Code Online (Sandbox Code Playgroud)

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

String guid = System.Guid.NewGuid().ToString;
Run Code Online (Sandbox Code Playgroud)

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

Bli*_*ndy 83

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

试试这个:

string guid = System.Guid.NewGuid().ToString();
Run Code Online (Sandbox Code Playgroud)


Vad*_*hev 82

根据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-0000-000000000000)` (2认同)

Tho*_*mas 8

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

String guid = System.Guid.NewGuid().ToString();
Run Code Online (Sandbox Code Playgroud)

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


Ben*_*nyM 6

String guid = System.Guid.NewGuid().ToString();
Run Code Online (Sandbox Code Playgroud)

否则它是一个代表.


Dre*_*kes 6

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

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}}
Run Code Online (Sandbox Code Playgroud)

默认值为D

自己运行


Ste*_*man 5

你需要

String guid = System.Guid.NewGuid().ToString();
Run Code Online (Sandbox Code Playgroud)


Shi*_*iji 5

你在ToString的末尾缺少().


Mak*_*ach 5

你写了吗

String guid = System.Guid.NewGuid().ToString;
Run Code Online (Sandbox Code Playgroud)

或者

String guid = System.Guid.NewGuid().ToString();
Run Code Online (Sandbox Code Playgroud)

注意括号。