是否可以在C#中声明一个常量Guid?
我知道我可以声明一个
static readonly Guid
,但是有没有一种语法可以让我写 const Guid
?
不。
const
修饰符仅适用于“原始”类型(bool、int、float、double、long、decimal、short、byte)和字符串。基本上任何你可以声明为文字的东西。
将其声明为
static readonly Guid
而不是 const Guid
public static readonly Guid Users = new Guid("5C60F693-BEF5-E011-A485-80EE7300C695");
就是这样。
虽然你似乎无法做到这一点,但你可以在需要时进行解析:
const string _myGuidStr = "e6b86ea3-6479-48a2-b8d4-54bd6cbbdbc5";
我正在这样做:
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); } }
}
取决于您想要 const 的目的。
如果您希望拥有一个可以根据需要重用的已知 GUID,则上述将 GUID 存储为字符串并根据需要解析为 GUID 的解决方案是可行的。
如果您需要默认参数值,那是行不通的。 另一种方法是使用可为 null 的 Guid 并使用 null 作为常量值。
public void Foo(string aParameter, Guid? anOptionalGuid = null)
Guid.Parse(“5C60F693-BEF5-E011-A485-80EE7300C695”)