成员“<membername>”的类型不符合 CLS

更新:2007 年 11 月

为此成员指定的数据类型不是 公共语言规范 (CLS) 的组成部分。在您的组件中,这不是错误,因为 .NET Framework 和 Visual Basic 支持此数据类型。但是,另一个在严格符合 CLS 的代码中编写的组件可能不支持此数据类型。此类组件可能无法与您的组件成功进行交互。

以下 Visual Basic 数据类型不符合 CLS:

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

**错误 ID:**BC40025

更正此错误

  • 如果您的组件只与其他 .NET Framework 组件交互,或者不与任何其他组件交互,您无需更改任何内容。

  • 如果要与并非针对 .NET Framework 编写的组件交互,您可能能够通过反射或依据文档确定它是否支持此数据类型。如果支持,您无需更改任何内容。

  • 如果要与不支持此数据类型的组件交互,您必须将其替换为最接近的符合 CLS 的类型。例如,您可以使用 Integer 替换 UInteger(如果您不需要 2,147,483,647 以上的数值范围)。如果您确实需要扩展的范围,可以将 UInteger 替换为 Long。

  • 如果要与自动化或 COM 对象交互,请记住,某些类型具有与 .NET Framework 中不同的数据宽度。例如,uint 在其他环境中通常为 16 位。如果要将某个 16 位参数传递给此类组件,请在托管 Visual Basic 代码中将其声明为 UShort(而不是 UInteger)。

请参见

概念

反射概述

编写符合 CLS 的代码

其他资源

反射