C # 'S var
Mot-clé: une approche équilibrée pour taper l'inférence
C # 3 du mot clé var
pour l'inférence du type a généré des discussions considérables entre les développeurs. Bien que l'offre de simplification du code dans certains cas, les problèmes de sécurité de type potentiel garantissent un examen attentif.
efficace var
Utilisation
Le mot-clé var
brille lorsque le type est facilement apparent:
var myList = new List<string>();
var myObject = new MyClass();
Situations où var
peut obscurcir le code
sureserver var
peut conduire à l'ambiguïté:
foreach (var item in myCollection) { ... }
- Le type de item
n'est pas immédiatement évident. var result = myMethod();
- Le type de result
nécessite une enquête plus approfondie. requêtes linq: une nuance dans var
usage
Les requêtes LINQ représentent une zone grise:
var queryResults = from r in dbContext.MyTable select r;
- Le type précis de queryResults
(bien qu'il implémentera IEnumerable
) n'est pas explicitement indiqué. var filteredList = from item in myList where item > 5 select item;
- Cela n'offre pas plus de clarté qu'une boucle foreach
comparable en utilisant var
. Maintenir la sécurité de type
Bien que var
ne compromet pas le typage fort, l'absence d'informations de type explicite peut créer des problèmes:
var
variables aux méthodes surchargées avec des paramètres de type différents (par exemple, IEnumerable<int>
et IEnumerable<double>
) peut conduire à des décalages de type non détectés. Insignes du développeur
Malgré les inconvénients potentiels, les développeurs trouvent souvent var
bénéfique dans des contextes spécifiques. Par exemple, l'attribution d'une valeur de propriété comme var orders = customer.Orders;
simplifie le code par rapport à la spécification explicite du type (par exemple, ObservableCollection<Order> orders = customer.Orders;
), surtout si le type sous-jacent peut changer dans le développement futur. La clé est une application judicieuse.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!