
Envoyé par
fred1599
Ok, je te fais confiance pour le C#
Mais
new à mon sens n'assure pas le type réel de l'objet à la compilation, ou je me trompe ?
Par contre je vois cela dans la documentation,
Du coup je pense qu'il faut prendre en compte la valeur
null car il semble que cet opérateur n'échoue jamais...
Il n'y a pas de souci avec l'opérateur new seul, il s'agit d'une simple élision de code lorsque le contexte est suffisant pour permettre au compilateur de déterminer le type approprié (inférence de type).
Déclaration classique :
Point p = new Point(1, 2);
Avec le mot-clé var le type est déduit de la source de l'affectation :
Si le type de la variable est déclaré explicitement, il n'est pas nécessaire de le répéter avec l'opérateur new :
Bien sûr le compilateur va râler s'il n'a pas suffisamment d'informations :
1 2 3
| var p = default;
var p = null;
var p = new(1, 2); |
On peut toujours utiliser des types explicites lorsque le type de la variable n'est pas le même que celui de l'objet :
IFormatable p = new Point(1, 2); // System.Windows.Point implémente System.IFormatable
Partager