13

对于我从 VB6 移植的应用程序,我有几个关于 CLS-Compliance 的令人讨厌的编译器警告,包括:

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

尽管如此,我的应用程序似乎在 COM 和托管客户端上运行良好。我已经看过几篇描述如何使代码符合 CLS 的文章,我可能会继续这样做以摆脱烦人的警告,但我很好奇不符合 CLS 的代码在实际中的缺点是什么条款?我还没有发现这种强加的限制是什么?

4

2 回答 2

10

基本上,当与某些 .NET 语言一起使用时,您的类可能无法访问(或者可能表现得很奇怪,例如大的正数被视为负数)。我不能说它们可能是什么语言。

例如,我不认为需要一种语言来识别以下划线开头的标识符。C# 允许这样做,因此您在那里很安全,但对于其他语言,“_AnIdentifier”可能会被隐藏,或者具有系统生成的名称。

于 2008-12-02T16:19:30.793 回答
4

当不符合 CLS 的代码被混淆时,我遇到了混淆工具生成不正确的混淆代码的问题。

于 2008-12-02T16:44:39.510 回答