Это вопрос о том, что является «лучшей практикой» для объявления новых переменных, и я уже видел эту ситуацию несколько раз. У меня есть класс, конструктор которого читает файл конфигурации, например:
ConfigMgr config = new ConfigMgr(args[0]);
Конечно, если вы запускаете консольное приложение без этого аргумента, возникает исключение. Если я окружу эту строку с помощью try / catch следующим образом, я получу ошибку «Имя« config »не существует в текущем контексте». Понятный.
try
{
ConfigMgr config = new ConfigMgr(args[0]);
}
catch
{
Console.WriteLine("Config file not specified or incorrect in format. Exiting.");
Console.ReadLine();
}
// Defaults
string aucomposingfile = config.getValue("aucomposingfile");
string nzcomposingfile = config.getValue("nzcomposingfile");
...etc
Я мог бы выделить часть, которая требует аргумента в конструкторе - сделать новую часть ConfigMgr за пределами блока try / catch, а затем сделать что-то вроде config.LoadFile () в try / catch. Но я не могу себе представить, что это делают те, кто в курсе.
Есть мысли?
Спасибо!