如何在C#中声明常量Guid?

问题描述 投票:0回答:7

是否可以在C#中声明一个常量Guid?

我知道我可以声明一个

static readonly Guid
,但是有没有一种语法可以让我写
const Guid

c# constants guid compile-time-constant
7个回答
81
投票

不。

const
修饰符仅适用于“原始”类型(bool、int、float、double、long、decimal、short、byte)和字符串。基本上任何你可以声明为文字的东西。


60
投票

将其声明为

static readonly Guid
而不是
const Guid


46
投票
public static readonly Guid Users = new Guid("5C60F693-BEF5-E011-A485-80EE7300C695");

就是这样。


22
投票

虽然你似乎无法做到这一点,但你可以在需要时进行解析:

const string _myGuidStr = "e6b86ea3-6479-48a2-b8d4-54bd6cbbdbc5";

7
投票

我正在这样做:

public static class RecordTypeIds
{
    public const string USERS_TYPEID = "5C60F693-BEF5-E011-A485-80EE7300C695";
    public static Guid Users { get { return new Guid(EntityTypeIds.USERS_TYPEID); } }
}

0
投票

取决于您想要 const 的目的。

如果您希望拥有一个可以根据需要重用的已知 GUID,则上述将 GUID 存储为字符串并根据需要解析为 GUID 的解决方案是可行的。

如果您需要默认参数值,那是行不通的。 另一种方法是使用可为 null 的 Guid 并使用 null 作为常量值。

public void Foo(string aParameter, Guid? anOptionalGuid = null)

0
投票

Guid.Parse(“5C60F693-BEF5-E011-A485-80EE7300C695”)

© www.soinside.com 2019 - 2024. All rights reserved.