2009-11-09 92 views
33

我是C#的新手。如何将GUID转换为C#中的字符串?

我知道在vb.net中,我能做到这一点:

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

在C#中,我试图做

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

,但我得到一个“不能转换方法组' ToString'转换为非委托类型'string'。您是否打算调用方法?“错误。

回答

60

你错过了()ToString这标志着它作为一个函数调用与函数引用(你传递给代表的那种),这亦是为什么C#有没有AddressOf运营商,它是由你如何键入它暗示。

试试这个:

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

你似乎也做了相同的...为你编辑。 – James 2009-11-09 11:05:54

+0

你是不是也错过了?;) – Bobby 2009-11-09 11:06:01

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

否则它是一个代表。

5

你需要

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

你缺少()上的ToString结束。

3

你写

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

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

通知paranthesis

7

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

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

如果没有括号,你分配方法本身(而不是其结果)的变量​​,显然该方法不能转换为String,因此错误。

53

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

'guidVal.ToString(“P”)'返回32位数字,用括号括起来:'(00000000-0000-0000-0000-000000000000)' – 2016-11-23 07:26:20

相关问题