在符合 CLS 的 <classname> 中不允许出现不符合 CLS 的“Mustoverride”成员

更新:2007 年 11 月

类被标记为 <CLSCompliant(True)>,但它包含标记为 <CLSCompliant(False)> 或未标记的 MustOverride 属性或过程。

当某个类符合 公共语言规范 (CLS) 时,使用该类的应用程序只会访问也被标记为 <CLSCompliant(True)> 的成员,并且会忽略未被标记为该值的成员。但是,应用程序无法忽略 MustOverride 属性或过程,因为应用程序必须访问该属性或过程才能重写它。

CLSCompliantAttribute 应用于编程元素时,将该属性的 isCompliant 参数设置为 True 或 False 来指示符合或不符合。此参数没有默认值,您必须提供一个值。

如果没有将 CLSCompliantAttribute 应用于某个元素,则认为该元素是不符合的。

默认情况下,此消息是一个警告。有关隐藏警告或将警告视为错误的信息,请参见 在 Visual Basic 中配置警告

**错误 ID:**BC40034

更正此错误

  • 如果需要符合 CLS 并能够控制类源代码,请将成员标记为 <CLSCompliant(True)>。

  • 如果需要符合 CLS 但无法控制类源代码,或者,如果它不具备符合条件的资格,请在另一个类中定义此成员。

  • 如果需要此成员保持不符合状态,请从其定义中移除 MustOverride 关键字,从类定义中移除 CLSCompliantAttribute,或将类标记为 <CLSCompliant(False)>。

请参见

概念

编写符合 CLS 的代码

参考

MustOverride