-
“<过程签名 1>”不符合 CLS,因为它重载仅在数组参数类型的数组或数组参数类
当某个过程或属性重写了另一个过程或属性,并且它们的参数列表之间的唯一差异是交错数组的嵌套级别或数组的秩时,该过程或属性被标记为 <CLSCompliant(True)>。
在以下声明中,第二个和第三个声明会产生此错误。
Overloads Sub processArray(ByVal arrayParam() As Integer)
Overloads Sub processArray(ByVal arrayParam()() As Integer)
Overloads Sub processArray(ByVal arrayParam(,) As Integer)
第二个声明将原始一维参数 arrayParam 更改为数组的数组。 第三个声明将 arrayParam 更改为一个二维数组(秩为 2)。 尽管 Visual Basic 允许重载只是在其中某项更改上不同,但此类重载操作不符合 公共语言规范 (CLS)。
将 CLSCompliantAttribute 应用于编程元素时,将该特性的 isCompliant 参数设置为 True 或 False 来指示符合或不符合。 此参数没有默认值,您必须提供一个值。
如果没有将 CLSCompliantAttribute 应用于某个元素,则认为该元素是不符合的。
默认情况下,此消息是一个警告。 有关隐藏警告或将警告视为错误的信息,请参见 在 Visual Basic 中配置警告。
**错误 ID:**BC40035
更正此错误
-
如果需要符合 CLS,请对重载进行定义,以使它们在多个方面(而不只是在此帮助页面上所引用的这些更改方面)相互不同。
-
如果需要重载只是在此帮助页面上所引用的这些更改方面有所不同,请从它们的定义中移除 CLSCompliantAttribute,或将它们标记为 <CLSCompliant(False)>。