Middle
Quelle est la différence entre var et dynamic en C#?
sobes.tech IA
Réponse de l'IA
var est utilisé pour la typage implicite des variables locales. Le compilateur détermine le type lors de la compilation.
dynamic est utilisé pour travailler avec des objets dont le type n'est connu qu'à l'exécution. La vérification du type et l'appel des méthodes se produisent à l'exécution.
| Caractéristique | var | dynamic |
|---|---|---|
| Typage | Statique (compilation) | Dynamique (exécution) |
| Vérification du type | En compilation | En exécution |
| Performance | Élevée (type défini) | Inférieure (analyse requise en exécution) |
| Restrictions | Seulement pour variables locales | Pour variables, champs, propriétés, paramètres |
| Application | Commodité, réduction du code | Interaction avec COM, DLR, Reflection |
Exemple avec var:
// Le compilateur détermine que x est de type int
var x = 10;
// Erreur de compilation, car x est défini comme int
// x = "bonjour";
Exemple avec dynamic:
// Le type y est déterminé en temps d'exécution
dynamic y = 10;
// Pas d'erreur de compilation, car la vérification se fait en temps d'exécution
y = "bonjour";
// Appel d'une méthode qui peut ne pas exister; l'erreur peut survenir en temps d'exécution
// y.Methode();