【问题标题】:How to use Guids in C#?如何在 C# 中使用 Guid?
【发布时间】:2010-10-28 14:08:35
【问题描述】:

此代码:

Something = new Guid() 

正在返回:

00000000-0000-0000-0000-000000000000

一直都是,我不知道为什么?那么,为什么?

【问题讨论】:

标签: c# guid


【解决方案1】:

你应该使用Guid.NewGuid()

【讨论】:

  • @Ante:如果你有 Guid 类,那么你就有 NewGuid 方法。
【解决方案2】:

简单解释一下为什么需要调用 NewGuid 而不是使用默认构造函数...在 .NET 中,所有结构(值类型,如 int、decimal、Guid、DateTime 等)都必须具有默认的无参数构造函数将所有字段初始化为其默认值。在 Guid 的情况下,组成 Guid 的字节全为零。他们没有为 Guid 制作一个特例或将其变成一个类,而是使用 NewGuid 方法生成一个新的“随机”Guid。

【讨论】:

    【解决方案3】:

    System.Guid.

    在代码中动态创建 GUID:

    Guid messageId = System.Guid.NewGuid();
    

    查看它的价值:

    string x = messageId.ToString();
    

    【讨论】:

    • 是的,它应该在那里 (msdn.microsoft.com/en-us/library/system.guid_members.aspx) 但我不能使用它。为什么?
    • “我无法使用它” - 当您尝试使用它时会发生什么?手动输入(可能您的智能感知存在问题)并尝试编译 - 您是否收到编译错误?
    • 你说“不能用”是什么意思?如果您键入 Guid x = System.Guid.NewGuid() 并编译,您会收到错误吗?还是您不喜欢 x 获得的价值?
    • 大声笑是的,Guid 算法有时需要重新启动。叹息。
    【解决方案4】:

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

    改用Guid.NewGuid();

    【讨论】:

      【解决方案5】:
       Guid g1 = Guid.NewGuid();
      
       string s1;
       s1 = g1.ToString();
       Console.WriteLine("{0}",s1);
       Console.ReadKey();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-21
        • 1970-01-01
        • 2011-06-23
        • 2010-12-25
        • 2013-02-17
        • 2020-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多