C# 枚举作为 int

发布于 2024-07-24 04:39:11 字数 52 浏览 4 评论 0原文

有没有办法让我的枚举默认为整数? 所以我不需要到处打字? 基本上我将它用作常量值列表。

Is there a way i can make my enum defaulted as ints? so i dont need to typecast it everywhere?
Basically i am using it as a list of const values.

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

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

发布评论

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

评论(3

っ〆星空下的拥抱 2024-07-31 04:39:11

不。

如果您确实需要一组 int 常量,请使用静态类:

public static class Constants {
  public const int ConstantOne = 42;
  public const int ConstantTwo = 42;
  ...
}

No.

If you really need a group of int constants, then use a static class:

public static class Constants {
  public const int ConstantOne = 42;
  public const int ConstantTwo = 42;
  ...
}
农村范ル 2024-07-31 04:39:11

不,如果您声明了枚举,则它们的默认值是枚举,并且需要显式转换才能获取 int 值。 如果您使用枚举作为 const 值,为什么不使用 const 值呢? 如果你想要一些分离,你可以创建一个只包含这些常量值的结构。

No, if you've declared an enum, their default value is as an enum, and an explicit cast is required to get to the int value. If you're using the enum as const values, why not use const values? If you want some separation you could create a struct that contains nothing but these const values.

2024-07-31 04:39:11

如果你真的想这样做,你可以为枚举创建一个如下所示的扩展方法

public static int ToInt(this Enum obj)
{
   return Convert.ToInt32(obj);
}

然后你可以像下面这样使用它

var t = Gender.male;
var r = t.ToInt();

If you really want to do that, you could create an extension method like the following for enums

public static int ToInt(this Enum obj)
{
   return Convert.ToInt32(obj);
}

Then you could use it like the following

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