C# 4.0 在C中分配GUID#

C# 4.0 在C中分配GUID#,c#-4.0,guid,C# 4.0,Guid,我有很多代码使用guid(一种交给我的体系结构——不是我的选择) 大多数情况下,这些值来自数据库并从那里加载到内存中。然而,我正在做一些测试,并将一些guid硬编码到代码中 我还没有找到一种简单的方法来分配Guid,所以我最终使用了Guid.Parse(“…”)。有没有一种更简单的方法可以在C#中分配GUI 创建字符串然后对其进行解析似乎需要很大的开销。我认为有一种更简单的方法可以直接分配它。如果您已经有了Guid的字符串表示,您可以这样做: Guid g = new Guid("1122334

我有很多代码使用guid(一种交给我的体系结构——不是我的选择)

大多数情况下,这些值来自数据库并从那里加载到内存中。然而,我正在做一些测试,并将一些guid硬编码到代码中

我还没有找到一种简单的方法来分配Guid,所以我最终使用了Guid.Parse(“…”)。有没有一种更简单的方法可以在C#中分配GUI


创建字符串然后对其进行解析似乎需要很大的开销。我认为有一种更简单的方法可以直接分配它。

如果您已经有了
Guid
的字符串表示,您可以这样做:

Guid g = new Guid("11223344-5566-7788-99AA-BBCCDDEEFF00");
如果你想要一个全新的
Guid
,那就去做吧

Guid g = Guid.NewGuid();

如果将guid用作常量,则可以将guid放入项目设置中。 然后,您可以通过以下方式达到您的值:

var myGuid = Properties.Settings.Default.MyGuid;

如果选择常量选项,则可以使用此Guid方法(六种可用方法之一):


是否需要
Guid
s具有特定值?如果没有,那么<代码>var myGuid=Guid.NewGuid()?是的,不幸的是,我知道。它们都与数据库值(PKs和FKs)绑定在一起。这不是我一开始想要的,但我并不是自己构建这个系统的。上面的代码只是一个愚蠢的例子,不是直接来自我的代码库。是的,就是这样。我怀疑它仍在做一个隐藏的.Parse(),但至少它的代码更简洁。谢谢。我相信你是对的,但正如你所说,这看起来更干净。另外,你看过Eric Lippert关于GUI的博客系列吗?这很有趣(我知道你一直在使用它们,所以可能与你无关):如果这是C代码段,那么它将不会编译,因为
常量
不能标记为
静态。
var myGuid = Properties.Settings.Default.MyGuid;
private static const Guid PUBLIC_KEY = new Guid((int)0x93EE8E7F, 0x13FA, 0x4C6D,
        new byte[] { 0x9D, 0x32, 0xE6, 0xEC, 0xD1, 0x4A, 0x91, 0xA7 }); 
// {93EE8E7F-13FA-4C6D-9D32-E6ECD14A91A7}