Jar*_*yer 47
在AssemblyInfo.cs文件中,您可能有一行读取
[assembly:CLSCompliant(true)]
Run Code Online (Sandbox Code Playgroud)
如果这样做,则必须满足以下规则.(来自http://www.devarticles.com/c/a/C-Sharp/Making-Your-Code-CLS-Compliant/的 Copy-Pasta )
无符号类型不应该是类的公共接口的一部分.这意味着公共字段不应该有uint或ulong等无符号类型,公共方法不应该返回无符号类型,传递给公共函数的参数不应该有无符号类型.但是,无符号类型可以是私有成员的一部分.
指针等不安全类型不应与公共成员一起使用.但是,它们可以与私人成员一起使用.
类名和成员名不应仅根据具体情况而有所不同.例如,我们不能有两个名为MyMethod和MYMETHOD的方法.
只有属性和方法可能会重载,操作符不应该重载.
who*_*ine 10
这是一个古老的问题,但我认为未来的调查人员(比如我自己)会有更好的解释.
首先,其他答案中的链接提供了给出此警告的原因的详细信息.
但是,总而言之,如果可以与为CLR设计的其他语言进行交互,则为公共语言运行时编写的代码(例如C#)是符合CLS的.这意味着特定于该语言的某些数据类型不符合整个运行时的通用.关于变量和方法的快速简便的解决方法是为它们提供可见性修饰符internal,该修饰符指定方法,类,属性等在构建它的程序集之外是不可见的.这只应该在那些你不需要或想要在装配之外使用的物品上进行; 对于那些您想要可见的数据,请使用符合CLS的数据类型.
更多信息:
您可以在符合 CLS 的程序集中获得这些警告,该程序集引用了不符合 CLS 的程序集(并公开其不符合 CLS 的成员):
| 归档时间: |
|
| 查看次数: |
32495 次 |
| 最近记录: |