.NET中NON-CLS兼容代码的后果是什么?

时间:2008-12-02 16:11:07

标签: .net compiler-warnings cls-compliant

我有一些关于应用程序的唠叨编译器警告,我从VB6移植了一段时间关于CLS合规性,包括:

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

尽管如此,我的应用似乎从COM和托管客户端执行得很好。我已经看过几篇文章描述了如何使代码符合CLS-Compliant,我可能会继续这样做,以摆脱唠叨的警告,但我很好奇非CLS兼容代码的缺点是什么在实际中条款?我还没有发现这种影响有什么限制?

2 个答案:

答案 0 :(得分:10)

基本上,当与某些.NET语言一起使用时,您的类可能无法访问(或可能行为奇怪,例如大的正数被视为负数)。我不能说他们可能是哪种语言。

例如,我认为不需要语言来识别以下划线开头的标识符。 C#允许它,所以你在那里安全,但对于其他语言,“_ AnIdentifier”可能被隐藏,或者有一个系统生成的名称。

答案 1 :(得分:4)

当遇到符合CLS的代码被混淆时,我遇到了混淆工具产生错误混淆代码的问题。