(Хорошо, я расскажу о глубинах моего невежества здесь, пожалуйста, будьте осторожны)
Фон
У меня есть метод, который выглядит (немного) следующим образом:
public void AddLink(Enum enumVal)
{
string identifier = m_EnumInterpreter(enumVal);
AddLink(identifier);
}
EnumInterpreter - это строка Func < Enum, которая передается при создании родительского класса.
Я использую Enum, потому что на этом уровне это "ничто из моего бизнеса" - мне все равно, какой конкретный enum он есть. Вызывающий код просто использует (сгенерированное) перечисление, чтобы избежать магических строк.
Вопрос
Если EnumInterpreter отправляет обратно пустую строку, я хотел бы сделать исключение с фактическим значением enumVal. Я думал, что просто смогу использовать int, но у компилятора его не будет. Что я делаю не так? (Пожалуйста, не говорите "все" ).