2010-10-03 28 views
2

在Java中很多自動生成的代碼中,通常的做法是在變量的名稱前面加上美元符號可能與用戶變量衝突的名稱。按照慣例,手動編寫的代碼不使用美元符號。但是,在C#中,該字符在標識符中無效。是否有命名生成的標識符的標準做法?我現在用雙下劃線爲它們加前綴,我相信它經常用於C.C#中生成的標識符的命名約定

有時,您希望生成具有某些功能的超類,並允許子類將其包裝在一個整潔的包中。這是適用的時候。

+0

不回答你的問題,但在你運行太遠這條路徑之前,你應該瞭解C#解決方案中用於處理生成代碼的擴展性的部分類:http://msdn.microsoft.com/en- us/library/wa80x488(VS.80).aspx – 2010-10-03 21:30:15

+0

您不應該在C中用雙下劃線前綴生成的標識符。這可能是一種「常見」做法,但它非常錯誤。雙下劃線保留爲_implementation_(例如,用於語言擴展或哈希中的私有標識符)。 – 2010-10-03 21:33:34

+0

@Kirk:然而,部分類不會阻止名稱衝突。例如,如果一個部分類的一個主體聲明瞭一個具有特定簽名的方法,則其他主體不能重新定義它。它更多的是建立構件的方便分離。 – 2010-10-03 21:35:10

回答

2

我不知道該標準約定是在這種情況下什麼,但因爲C# accepts Unicode characters in identifers,你可以隨便挑幾個任意Unicode字符到幾乎保證沒有名稱將發生衝突。

例如,以ꉜꈅstarting開頭的變量的可能性是多少?

+0

這是一個好主意,我會用它! – MikeAinOz 2010-10-03 21:46:56