Мой коллега реорганизовал этот код:
private void btnGeneral_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)e.OriginalSource;
Type type = this.GetType();
Assembly assembly = type.Assembly;
string userControlFullName = String.Format("{0}.{1}", type.Namespace, button.Name);
UserControl userControl = (UserControl)assembly.CreateInstance(userControlFullName);
}
к этому коду:
private void btnGeneral_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)e.OriginalSource;
Type type = this.GetType();
Assembly assembly = type.Assembly;
UserControl userControl = (UserControl)assembly.CreateInstance(String.Format("{0}.{1}", type.Namespace, button.Name));
}
говоря, что вам не нужно создавать переменную, если она будет использоваться только один раз.
Мой ответ заключался в том, что использование некогда используемых переменных является хорошей практикой, поскольку:
- выполняет функции и уменьшает комментарии (ясно, что такое userControlFullName)
- упрощает чтение кода, т.е. больше вашего кода "читается как английский"
- избегает сверхдлинных утверждений, заменяя их части ясными именами переменных
- легче отлаживать, поскольку вы можете навести указатель мыши на имя переменной и в случаях, например, PHP-программирование без отладчиков, легче вывести эти имена переменных, чтобы получить их значения.
Аргументы против этого пути "больше строк кода", "ненужные переменные" являются аргументами, которые облегчают жизнь компилятору, но не имеют значительной скорости или экономии ресурсов.
Может ли кто-нибудь подумать о любых ситуациях, в которых нельзя создавать одноразовые имена переменных?