Je ne comprends pas le cas d'utilisation d' var
des modèles dans C#7. MSDN:
Un motif correspondance avec l'
var
modèle réussit toujours. Sa syntaxe est
expr is var varname
lorsque la valeur de expr est toujours assignée à une variable locale nommée
varname
.varname
est une variable statique du même type queexpr
.
L'exemple sur MSDN est assez inutile à mon avis, surtout parce que l' if
est redondant:
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}");
}
Ici, je ne vois pas d'avantages, vous pourriez avoir le même si vous avez accès à la variable de boucle item
directement, ce qui est aussi de type Object
. L' if
est source de confusion, car il n'est jamais false
.
Je pourrais utiliser var otherItem = item
ou utiliser item
diectly.
Quelqu'un peut m'expliquer le cas d'utilisation de mieux?