Comment Visual Studio/intellisense sait quoi faire avec une variable déclarée comme var
même si vous n'incluez pas la déclaration using
nécessaire en haut?var mot clé sans 'using someNamespace'
Par exemple, j'ai la classe MyDomainObject
définie dans un espace de noms différent Si je ne déclare using TheOtherNameSpace;
dans le fichier le code suivant ne compile pas:
private void Foo()
{
MyDomainObject myObj = new MyDomainObject();
// Doesn't know what this class is
}
Mais si j'utilise var
var myObj = new MyDomainObject();
Cela va compiler, et intellisense sait exactement ce que je peux avec.
Alors, comment diable sait-il quel est le type sans le using
?
(Et en passant, si elle sait sans using
, pourquoi avons-nous besoin using
s du tout ?!)
Pouvez-vous publier le code réel de votre programme dans les deux cas? Je doute que vous ayez vraiment une méthode nommée Foo et une classe nommée MyDomainObject, peut-être que le vrai code peut vous éclairer dessus. –
Désolé, ne travaille pas pour moi ... il ne compile en aucun cas – tanascius
Voir la réponse de Jon Skeet pour la situation que je rencontrais dans mon vrai code – RichK