Каковы некоторые преимущества и недостатки вывода типов в C #?

У меня есть коллега, который выступает против вывода типов в C #. Я считаю, что большинство его аргументов связано с отсутствием удобочитаемости. Мой аргумент против этого заключается в том, что Visual Studio ' Функции intellisense обеспечивают простой способ просмотра типов, и чтение их из кода не так необходимо, как если бы мы писали код из блокнота.

Однако мне любопытны преимущества и недостатки использования типа вывод на C #. Я родом из C ++ и знаю, что «auto» в C ++ 0x имеет более объективное преимущество, поскольку вы не всегда знаете, какие типы вы получаете (особенно при программировании тяжелых шаблонов). В качестве примера можно привести использование auto для хранения значения Boost.Bind.

В C # вывод типа не является таким большим требованием, как "приятно иметь" или приукрашивать. Я думаю, это будет полезно, когда вы имеете дело с длинными типами, например:

Lazy<List<MyNamespace.ISomeVeryLongInterfaceType>> myVar = obj.GetLazy();

, это будет:

var myVar = obj.GetLazy();

На мой взгляд, это намного чище. Однако, есть ли какие-либо объективные аргументы в пользу ИЛИ против вывода типа? Хорошая ли практика программирования - использовать его даже в ситуациях, когда можно утверждать, что он не приносит пользы (например, использование 'var' вместо 'int')?

Некоторые помогают понять, как мне следует использовать 'var' в моя повседневная работа с кодом была бы великолепна.

9
задан void.pointer 16 May 2011 в 15:51
поделиться