C#枚举的显式初始化

C#枚举的显式初始化,c#,enums,initialization,C#,Enums,Initialization,我有以下声明: private Enum _statusValue; 我想说的是: private Enum _statusValue = 0; 尽管我知道这是多余的。只是我喜欢显式地指定初始化 但这是不允许的 有没有简单的方法来指定这种声明的初始化 编辑-让我再试一次 下面是我正在做的一个做作/简化的例子 using System; namespace EnumTesting { public enum EFixedPhoneUsability { Unknown

我有以下声明:

private Enum _statusValue;
我想说的是:

private Enum _statusValue = 0;
尽管我知道这是多余的。只是我喜欢显式地指定初始化

但这是不允许的

有没有简单的方法来指定这种声明的初始化

编辑-让我再试一次

下面是我正在做的一个做作/简化的例子

using System;

namespace EnumTesting
{
   public enum EFixedPhoneUsability
   {
      UnknownValue,       // Should not occur?
      IsUsable,           // User is near the telephone
      NotUsable,          // User not near the telephone
      BeingUsed,          // Busy
      DoNotDisturb,       // This is phone physical state, not user attitude
      CallsForwarded      // This is phone physical state
   }

   public enum EMobilePhoneConnectivity
   {
      UnknownValue,       // Should not occur?
      OnNetIdle,          // I.e., usable
      OnNetBusy,          // Being used
      NoConnection        // Turned off, in elevator or tunnel or far from civilization
   }

   public class Program
   {
      public Enum StatusValue;

      static void Main(string[] args)
      {
         Program p = new Program();

         p.StatusValue = EMobilePhoneConnectivity.NoConnection;

         int i = (int) (EMobilePhoneConnectivity) p.StatusValue;

         p.StatusValue = EFixedPhoneUsability.DoNotDisturb;

         i = (int) (EFixedPhoneUsability) p.StatusValue;
      }
   }
}
所以我的问题是,我能给这个语句添加一个通用的初始值设定项吗

      public Enum StatusValue;
第二次编辑:

没关系,多亏了这篇帖子,我发现了自己的错误:

让我意识到我做错了什么的关键短语是:“枚举是值类型(内部仅由整数常量表示),而System.Enum是引用类型”

所以我不想这样说:

private Enum _statusValue = 0;
private Enum _statusValue = 0; 
我想说,这是完全正确的:

private Enum _statusValue = null;
private Enum _statusValue = null; 

感谢那些试图提供帮助的人。

您可以始终以稍微不同的方式声明枚举,并添加默认状态(实际上是):

或简单地(自动编号从0开始):

这将允许您执行以下操作:

private MyEnum _enum = MyEnum.Default;

您可以始终以稍微不同的方式声明枚举,并添加默认状态(实际上是):

或简单地(自动编号从0开始):

这将允许您执行以下操作:

private MyEnum _enum = MyEnum.Default;

我的问题基本上是错的。我错误地认为Enum(像Enum一样)是一种值类型,但它实际上是一种引用类型

所以我不想这样说:

private Enum _statusValue = 0;
private Enum _statusValue = 0; 
我想说,这是完全正确的:

private Enum _statusValue = null;
private Enum _statusValue = null; 

感谢那些试图帮助我的人。

我的问题基本上是错的。我错误地认为Enum(像Enum一样)是一种值类型,但它实际上是一种引用类型

所以我不想这样说:

private Enum _statusValue = 0;
private Enum _statusValue = 0; 
我想说,这是完全正确的:

private Enum _statusValue = null;
private Enum _statusValue = null; 

感谢您的帮助。

私有枚举_statusValue
是一种类型定义。无法初始化类型定义。我认为这不正确。这不是一个字段定义吗?它的工作原理类似于字段定义-我可以使用其他枚举为其赋值,然后使用强制转换从中检索值。@RenniePet:您可以回答自己的问题,然后接受它。这样这个问题就结束了。
private Enum\u statusValue
是一个类型定义。无法初始化类型定义。我认为这不正确。这不是一个字段定义吗?它的工作原理类似于字段定义-我可以使用其他枚举为其赋值,然后使用强制转换从中检索值。@RenniePet:您可以回答自己的问题,然后接受它。这样这个问题就结束了。谢谢你的建议,但我希望避免引入一个新的enum MyEnum,它的唯一目的是为不能使用字面零提供语法上的支持。我已经编辑并扩展了我的问题,如果您能再看一看,我将不胜感激。谢谢。谢谢你的建议,但我希望做的是避免引入新的enum MyEnum,它的唯一目的是为不能使用文字零提供语法上的支持。我已经编辑并扩展了我的问题,如果您能再看一看,我将不胜感激。谢谢