У меня есть следующее утверждение:
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 в базовое целое число?
Ключевая фраза, которая заставила меня понятьто, что я делал неправильно, заключается в следующем: «перечисления являются типами значений (и внутренне представлены только целочисленными константами), а System.Enum является ссылочным типом».
Поэтому я не хочу говорить это:
private Enum _statusValue = 0;
Я хочу сказать это, что совершенно справедливо:
private Enum _statusValue = null;
Спасибо тем, кто пытался помочь.