使用 default 关键字的枚举的默认值?

发布于 2024-09-24 05:51:01 字数 107 浏览 0 评论 0原文

任何人都知道使用默认关键字的枚举的默认值,例如:

MyEnum myEnum = default(MyEnum);

它会是第一项吗?

Anyone knows the default value for enums using the default keywords as in:

MyEnum myEnum = default(MyEnum);

Would it be the first item?

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

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

发布评论

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

评论(4

青丝拂面 2024-10-01 05:51:01

它是由 (myEnum)0 生成的值。例如:

enum myEnum
{
  foo = 100
  bar = 0,
  quux = 1
}

那么 default(myEnum) 将是 myEnum.bar 或如果有多个值为 0 的成员,则为枚举的第一个值为 0 的成员

。如果没有为枚举成员分配(显式或隐式)值 0,则为 0

It is the value produced by (myEnum)0. For example:

enum myEnum
{
  foo = 100
  bar = 0,
  quux = 1
}

Then default(myEnum) would be myEnum.bar or the first member of the enum with value 0 if there is more than one member with value 0.

The value is 0 if no member of the enum is assigned (explicitly or implicitly) the value 0.

拧巴小姐 2024-10-01 05:51:01

理解你的问题有点困难,但是枚举的默认值为零,这可能是也可能不是枚举的有效值。

如果您希望 default(MyEnum) 成为第一个值,则需要像这样定义枚举:

public enum MyEnum
{
   First = 0,
   Second,
   Third
}

It's a bit hard to understand your question, but the default value for an enum is zero, which may or may not be a valid value for the enumeration.

If you want default(MyEnum) to be the first value, you'd need to define your enumeration like this:

public enum MyEnum
{
   First = 0,
   Second,
   Third
}
黯然 2024-10-01 05:51:01

表达式 default(T) 相当于表示泛型参数或具体类型的 (T)0,它是一个 enum。无论 enum 是否定义了数值为 0 的条目,情况都是如此。

enum E1 {
  V1 = 1;
  V2 = 2;
}

...

E1 local = default(E1);
switch (local) {
  case E1.V1:
  case E1.V2:
    // Doesn't get hit
    break;
  default:
    // Oops
    break;
}

The expression default(T) is the equivalent of saying (T)0 for a generic parameter or concrete type which is an enum. This is true whether or not the enum defines an entry that has the numeric value 0.

enum E1 {
  V1 = 1;
  V2 = 2;
}

...

E1 local = default(E1);
switch (local) {
  case E1.V1:
  case E1.V2:
    // Doesn't get hit
    break;
  default:
    // Oops
    break;
}
三生一梦 2024-10-01 05:51:01

将其放入 vs2k10 .....

中:

 enum myEnum
 {
  a = 1,
  b = 2,
  c = 100
 };



 myEnum  z = default(en);

产生: z == 0 这可能是也可能不是您的枚举的有效值(在本例中,它不是),

因此 Visual Studio 2k10 说

slapped this into vs2k10.....

with:

 enum myEnum
 {
  a = 1,
  b = 2,
  c = 100
 };



 myEnum  z = default(en);

produces: z == 0 which may or may not be a valid value of your enum (in this case, its not)

thus sayeth visual studio 2k10

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