Я не понимаю пример использования шаблонов var
в С# 7. MSDN:
Совпадение шаблона с шаблоном
var
всегда выполняется успешно. Его синтаксис
expr is var varname
где значение expr всегда назначается локальной переменной с именем
varname
.varname
- статическая переменная того же типа, что иexpr
.
Пример на MSDN довольно бесполезен, на мой взгляд, особенно потому, что if
is избыточен:
object[] items = { new Book("The Tempest"), new Person("John") };
foreach (var item in items) {
if (item is var obj)
Console.WriteLine($"Type: {obj.GetType().Name}, Value: {obj}");
}
Здесь я не вижу никаких преимуществ, вы могли бы иметь то же самое, если бы вы напрямую обращались к item
переменной цикла, который также относится к типу Object
. if
это сбивает с толку, потому что это никогда не false
.
Я мог бы использовать var otherItem = item
или использовать item
разному. Может ли кто-нибудь объяснить прецедент лучше?