Я не уверен, что злоупотребляю Enums здесь. Возможно, это не лучший подход к дизайну.
У меня есть enum, который объявляет возможные параметры для метода, который выполняет командные файлы.
public enum BatchFile
{
batch1,
batch2
}
У меня есть метод:
public void ExecuteBatch(BatchFile batchFile)
{
string batchFileName;
...
switch (batchFile)
{
case BatchFile.batch1:
batchFileName = "Batch1.bat";
break;
case BatchFile.batch2:
batchFileName = "Batch2.bat";
break;
default:
break;
}
...
ExecuteBatchFile(batchFileName);
}
Так что мне было интересно, если это звуковой дизайн.
Другой вариант, о котором я думал, это создание словаря <> в конструкторе, например:
Dictionary<BatchFile, String> batchFileName = new Dictionary<BatchFile, string>();
batchFileName.Add(BatchFile.batch1, "batch1.bat");
batchFileName.Add(BatchFile.batch2, "batch2.bat");
Тогда вместо использования оператора switch я бы просто сказал:
public void ExecuteBatch(BatchFile batchFile)
{
ExecuteBatchFile(batchFileName[batchFile]);
}
Полагаю, последний вариант лучше.