У меня есть коллега, который против вывода типов в C#. Я полагаю, что большинство его аргументов были связаны с отсутствием удобочитаемости. Мой аргумент против этого заключается в том, что функции IntelliSense Visual Studio обеспечивают простой способ просмотра типов, и чтение их из кода не так необходимо, как могло бы быть, если бы мы писали код из блокнота.
Однако мне любопытны преимущества и недостатки использования вывода типов в C#. Я родом из С++ и знаю, что «авто» в С++ 0x имеет более объективное преимущество, поскольку вы не всегда знаете, какие типы вы получаете (особенно при программировании тяжелых шаблонов). В качестве примера можно использовать auto для сохранения значения Boost.Bind.
В C# вывод типов кажется не столько требованием, сколько «приятным иметь» или приукрашивающей функцией. Я думаю, что это было бы полезно, когда вы имеете дело с длинными типами, например:
Lazy<List<MyNamespace.ISomeVeryLongInterfaceType>> myVar = obj.GetLazy();
это было бы:
var myVar = obj.GetLazy();
На мой взгляд, это намного чище. Однако есть ли объективные аргументы в пользу ИЛИ против вывода типов? Является ли это хорошей практикой программирования, даже в ситуациях, когда можно утверждать, что это не дает никакой пользы (например, использование «var» вместо «int»)?
Некоторая помощь в понимании того, как я должен использовать 'var' в своем повседневном кодировании, была бы здоровой.
var
... - person NickAldwin   schedule 16.05.2011myVar
иobj.GetLazy()
. Все кажется плохой идеей, когда вы называете переменные так хорошо. - person Dennis Zickefoose   schedule 16.05.2011