#c# #enums #extension-methods
#c# #перечисления #методы расширения
Вопрос:
У меня есть класс enum, полный переключателей командной строки для стороннего приложения .. Я пытаюсь сделать так, чтобы я мог вызывать элемент в перечислении с помощью a .Для переключения (или чего угодно), чтобы я мог заставить его проверять тип значения, введите форматированный переключатель командной строки со значением его параметра. возможно, я ошибаюсь. После того, как я просидел здесь весь день, работая над этим (это большой) Мне трудно отпустить и изучить другой подход. lol есть предложения?
желаемый результат:
Console.WriteLine(EnumClass.EnumItem.ToSwitch("option"));
выдал бы: -x «option»
Ответ №1:
Для конкретного перечисления:
public enum MyEnum
{
value1 = 1,
value2 = 2,
}
public static class EnumExtensions
{
public static string ToSwitch(this MyEnum val, string option)
{
switch (val)
{
case MyEnum.value1 : return "x " option;
case MyEnum.value2 : return "y " option;
default: return "error";
}
}
}
Другой способ сделать то, о чем вы говорите, — это использовать Dictionary
, что может быть предпочтительнее. Ключами будет переключатель (или значение перечисления), а значением будет формат команды. Что-то вроде:
Dictionary<string, string> CmdFormats = new Dictionary<string, string>()
{
{ "-a", "filename" },
{ "-n", "number" }
};
Я подозреваю, что это было бы более удобным в обслуживании, чем определение перечисления.