2009-07-01 8 views
1

J'ai un projet d'application Web appelé Site, et il s'agit d'un dossier appelé SITE (je sais, pas les meilleures conventions de nommage, mais c'est une autre histoire).Pourquoi Visual Studio ajoute-t-il un signe arobase (@) à mon espace de noms?

Quand je vérifie le concepteur du code généré, il commence comme ceci:

namespace [email protected]__SITE__ { 

Pourquoi le signe ajouté? Je peux l'enlever et le projet compile et fonctionne bien. En outre, avec ou sans le signe arobase, l'espace de nom réel est Site.__SITE__.

Merci!

Répondre

10

Le symbole @ permet d'utiliser des noms qui entrent en conflit avec des mots-clés C# dans une application C#. Tous les noms en C# commençant par __ sont réservés pour une utilisation future. Par conséquent, chaque fois que CodeDom émet un code dont le nom est préfixé par __, il émet un signe @ afin de garantir que le nom sera légal car il peut entrer en conflit avec un futur mot clé C#.

Le code que vous voyez est probable après les mêmes règles ou tout simplement émis dans le cadre du CodeDom

0

Ils le font dans le cas où vous nommez votre chose « site » qui est un mot-clé réservé ... donc si votre le nom du site est "class" :-P le symbole @ permettrait d'utiliser ce nom comme espace de noms

2

Le préfixe @ est utilisé lorsque l'identificateur est en conflit avec un mot clé intégré. Il est probable que les identifiants de soulignement double soient réservés pour une utilisation future, de sorte que le concepteur joue en toute sécurité.

0

Lorsqu'un @ se produit avant un identificateur en C#, le compilateur considère la chaîne suivante comme un identificateur même si la chaîne est un mot-clé.

Ceci est juste une mesure de sécurité pour les identifiants générés automatiquement.

Questions connexes