如何在C#中使用Guids?

89

这段代码:

Something = new Guid() 

我的函数一直返回:

00000000-0000-0000-0000-000000000000

我不知道为什么会这样,那是为什么呢?


可能是C#如何创建Guid值?的重复问题。 - StayOnTarget
5个回答

149

1
@Ante:如果你有Guid类,那么你就有NewGuid方法。 - Guffa

61

为什么你需要调用NewGuid而不是使用默认构造函数,这里简短地说明一下... 在.NET中,所有的结构体(值类型如int、decimal、Guid、DateTime等)必须有一个默认的无参数构造函数,用于将所有字段初始化为它们的默认值。在Guid的情况下,构成Guid的字节都是零。他们不想特殊处理Guid或使其成为类,因此使用NewGuid方法来生成一个新的“随机”Guid。


12

这个在System.Guid中。

要在代码中动态创建一个GUID:

Guid messageId = System.Guid.NewGuid();

查看它的值:

string x = messageId.ToString();

是的,它应该在这里(http://msdn.microsoft.com/en-us/library/system.guid_members.aspx),但我无法使用它。为什么? - Ante
当你尝试使用它时,会发生什么?手动输入(也许是你的智能感知存在问题)并尝试编译 - 你是否收到编译错误?"我无法使用它"。 - Matt Brindley
当你说“不能使用它”时,你是什么意思?如果你键入Guid x = System.Guid.NewGuid()并编译,会出现错误吗?还是你不喜欢x的值? - DOK
哈哈,是的,那个 GUID 算法有时候需要重新启动。唉。 - Josh

4

something = new Guid() 等同于 something = Guid.Empty

应该使用 Guid.NewGuid(); 替代。


3
 Guid g1 = Guid.NewGuid();

 string s1;
 s1 = g1.ToString();
 Console.WriteLine("{0}",s1);
 Console.ReadKey();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接