2008-12-02 53 views
13

我有一個應用程序,我從VB6移植回關於CLS-合規性,包括同時幾個嘮叨的編譯器警告:.NET中符合NON-CLS的代碼的後果是什麼?

Name '_AnIdentifier' is not CLS-Compliant. 
Type of parameter 'myType' is not CLS-Compliant. 

儘管這樣,我的應用程序似乎是從COM和託管客戶端執行就好了。我已經看過幾篇文章描述如何做代碼CLS兼容,我可能會繼續前進,無論如何去擺脫嘮叨的警告,但我很好奇非CLS兼容代碼在實際中的缺點條款?這種假設有什麼限制,我還沒有發現?

回答

10

基本上,當您的類與某些.NET語言一起使用時,您的類可能無法訪問(或可能會出現奇怪的行爲,例如大的正數被視爲負數)。我不能說他們可能是什麼語言。

例如,我不認爲需要一種語言來識別以下劃線開頭的標識符。 C#允許它,所以你在那裏安全,但對於其他語言,「_AnIdentifier」可能被隱藏,或者有系統生成的名稱。

4

我遇到了混淆工具生成不正確混淆代碼的問題,當不符合CLS的代碼被混淆時。

相關問題