2009-07-01 58 views
1

我有一個名爲網站的網絡應用程序項目,並在其中是一個名爲SITE(我知道,不是最好的命名約定,但這是另一個故事)的文件夾。爲什麼Visual Studio將一個符號(@)添加到我的名稱空間?

當我檢查的設計器生成的代碼,它開始是這樣的:

namespace [email protected]__SITE__ { 

爲什麼在MSN上多加?我可以刪除它,項目編譯和運行良好。此外,無論是否帶有at符號,實際命名空間爲Site.__SITE__

謝謝!

回答

10

@符號是一種允許在C#應用程序中使用與C#關鍵字衝突的名稱的方法。 C#中以__開頭的所有名稱都保留供將來使用。因此,無論CodeDom何時發出代碼,前綴爲__的代碼都會發出@符號,以確保該名稱是合法的,因爲它可能與未來的C#關鍵字衝突。

你看到的是可能的規則相同的代碼,或只是作爲發射的CodeDom中

0

他們做一部分的情況下,你的名字你的「地盤」的東西,是一個保留關鍵字...因此,如果您的網站名稱爲「class」:-P @符號允許將該名稱用作名稱空間

2

@標識符與標識符與內置關鍵字衝突時使用。大概雙下劃線標識符被保留供將來使用,所以設計者正在玩安全。

0

當在C#中的標識符之前出現@時,編譯器認爲即使字符串是關鍵字,下列字符串也是標識符。

這只是一個自動生成標識符的安全措施。