基本类型不符合CLS,这个警告的原因是什么?

时间:2010-10-25 08:57:22

标签: c# cls-compliant

我在其中一门课上收到了警告。实际上类非常简单,只是我的泛型基类型的继承者。此外,我在解决方案中还有来自该泛型类的其他一些继承者,并且没有这样的警告。

这可能是什么原因? 编译器没有提供任何基本类型不符合CLS的原因的线索

4 个答案:

答案 0 :(得分:54)

您可能在该特定项目中的某处[assembly:CLSCompliant(true)]。这会触发编译器检查所​​有类型是否符合CLS。您可以使用[CLSCompliant(false)]覆盖类型或方法或其他内容。

答案 1 :(得分:4)

我猜你有一个标记为CLSCompliant的派生类型,但基础不是。

Writing CLS Compliant Code 规范示例使用的UInt32不是公共语言规范(CLS)的一部分 - 因此您需要使用Int64符合CLS或删除属性(声明自己符合非cls)。

需要更多代码来识别有问题的代码行。有关您the error的更多信息。

答案 2 :(得分:0)

我们正在使用MsBuildTasks,我们注意到的一件事是在-Werror=stringop-truncation文件中,Common.targets被设置为true。这是在每个CLSCompliant文件中设置该值。

答案 3 :(得分:0)

import numpy as np n = 5 aux = np.arange(1 , n) aux = np.sqrt(aux) A = np.diagflat(aux , 1) 放入基础项目和引用它的项目的<AssemblyClsCompliant>false</AssemblyClsCompliant>文件中。