Я пытаюсь вернуть строго типизированное значение Enumeration из строки.Я уверен, что есть лучший способ сделать это.Это просто слишком много кода для такой простой вещи:
public static DeviceType DefaultDeviceType
{
get
{
var deviceTypeString = GetSetting("DefaultDeviceType");
if (deviceTypeString.Equals(DeviceType.IPhone.ToString()))
return DeviceType.IPhone;
if (deviceTypeString.Equals(DeviceType.Android.ToString()))
return DeviceType.Android;
if (deviceTypeString.Equals(DeviceType.BlackBerry.ToString()))
return DeviceType.BlackBerry;
if (deviceTypeString.Equals(DeviceType.Other.ToString()))
return DeviceType.Other;
return DeviceType.IPhone; // If no default is provided, use this default.
}
}
Идеи?
Основываясь на отзывах, полученных от сообщества, я решил использовать расширение методакоторый преобразует строку в перечисление.Он принимает один параметр (значение перечисления по умолчанию).Это значение по умолчанию также предоставляет тип, так что универсальный может быть выведен и его не нужно указывать явно с помощью <>.Теперь метод сокращен до этого:
public static DeviceType DefaultDeviceType
{
get
{
return GetSetting("DefaultDeviceType").ToEnum(DeviceType.IPhone);
}
}
Очень крутое решение, которое можно использовать в будущем.