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

发布于 2024-10-16 05:01:12 字数 118 浏览 8 评论 0原文

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

我知道我可以声明一个static readonly Guid,但是是否有一种语法允许我编写const Guid

Is it possible to declare a constant Guid in C#?

I understand that I can declare a static readonly Guid, but is there a syntax that allows me to write const Guid?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

晚雾 2024-10-23 05:01:12

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

No. The const modifier only applies to "primitive" types (bool, int, float, double, long, decimal, short, byte) and strings. Basically anything you can declare as a literal.

最后的乘客 2024-10-23 05:01:12

将其声明为 static readonly Guid 而不是 const Guid

Declare it as static readonly Guid rather than const Guid

执妄 2024-10-23 05:01:12
public static readonly Guid Users = new Guid("5C60F693-BEF5-E011-A485-80EE7300C695");

就是这样。

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

and that's that.

北陌 2024-10-23 05:01:12

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

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

While you can't seem to do that you can do that to be parsed whenever you need it:

const string _myGuidStr = "e6b86ea3-6479-48a2-b8d4-54bd6cbbdbc5";
蓝眸 2024-10-23 05:01:12

我这样做是这样的:

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); } }
}

I am doing it like this:

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); } }
}
北凤男飞 2024-10-23 05:01:12

取决于你想要 const 的用途。

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

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

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

Depends on what you want a const for.

If you want to have a known GUID that you can reuse as needed, the above solution of storing the GUID as a string and parsing to GUID as needed works.

If you need a default parameter value, that won't work. The alternative is to use a nullable Guid and use null as your constant value.

public void Foo(string aParameter, Guid? anOptionalGuid = null)
森林很绿却致人迷途 2024-10-23 05:01:12

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文