Когда все только ощупывали и обдумывали type inferrence в c#, было сломано много копий про var. Дескать, это ужасно, люди будут писать страшный и непонятный код. Совсем стыд и страх потеряют. Время прошло, страсти улеглись. Никто этот вопрос больше не педалирует, хотя и непонятно, поставлена ли у людей в голове точка на этом вопросе.
Сейчас пересматриваю старый код и местами перевожу на var. Вот типичный кусок:
TriggerInfo info = GetObject<TriggerInfo>( triggerId );
Не считая двойного упоминания типа, здесь есть еще одна неприятность. Переменная-то называется info – просто какое-то непонятное инфо. Через 10 строчек кода может быть уже плохо понятно, о какой инфе идет речь. Особенно, если в других методах у нас есть такое:
JobInfo info = GetObject<JobInfo>( jobId );
Было бы хорошо написать «triggerInfo», но тогда это было бы написано в одной строке уже трижды. Ей богу, чувствуешь себя глупо, написав:
TriggerInfo triggerInfo = GetObject<TriggerInfo>( triggerId );
Масло масляное, какое-то. А с var все получается красиво. Надо только не лениться и переименовывать переменные, чтобы они полнее соответствовали смыслу:
var triggerInfo = GetObject<TriggerInfo>( triggerId );
Короче оригинала, и код дальше становится понятнее.
Posted
Dec 11 2009, 03:00 AM
by
Andrew Mayorov