我有一个enum类充满了第三方应用程序的命令行开关。我正在尝试这样做,所以我可以使用.ToSwitch(或其他)调用枚举中的项目,以便我可以使其验证值类型,使用其参数值吐出格式化的命令行开关。也许我错了。整天坐在这里工作(很大)我发现很难放手去探索不同的方法。大声笑?
期望的结果:
Console.WriteLine(EnumClass.EnumItem.ToSwitch("option"));
会吐出:-x“选项”
答案 0 :(得分:2)
对于特定的枚举:
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" }
};
我怀疑这比定义枚举更容易维护。