Любые идеи о том, как провести рефакторинг, следующие:
private string GetErrorText(ErrorType type, int error, string id)
{
string errorMessage = string.Empty;
switch (type)
{
case ErrorType.Generic:
switch (error)
{
case (int)ErrorType.One:
errorMessage = string.Format("Generic Error {0}",id);
break;
case (int)ErrorType.Two:
errorMessage = "Generic Error 2.";
break;
}
break;
case ErrorType.NonGeneric:
switch (error)
{
case (int)NonGenericError.One:
errorMessage = "One";
break;
case (int)NonGenericError.Two:
errorMessage = "Two";
break;
case (int)NonGenericError.Three:
errorMessage = "Three";
break;
case (int)NonGenericError.Four:
errorMessage = "Four"
break;
}
break;
}
return errorMessage;
}
Я знаю, что, вероятно, я могу просто вернуть строку вместо использования ключевого слова break.Я слышал, что могу поместить это в словарь, чтобы полностью избежать переключения.Кроме того, можно ли сочетать операторы switch?И что происходит в том случае, если мне нужно передать более одного аргумента в метод string.Format.Прямо сейчас, это займет всего один?