如果您要让您的代码符合 CLS,您必须在以下几处以符合 CLS 的方式公开功能:
在您的私有类的定义中、在公共类上私有方法的定义中以及在局部变量中使用的功能不必遵循 CLS 规则。您还可以在实现您的类的代码中使用任何想要的语言功能并让它仍是一个符合 CLS 的组件。
说明: |
|---|
交错数组(即数组的数组)符合 CLS。在 .NET Framework 1.0 版中,C# 编译器错误地将其报告为不符合。 |
您可以使用 CLSCompliantAttribute 将程序集、模块、类型和成员标记为符合 CLS 或不符合 CLS。所有要成为符合 CLS 的程序集都应这样进行标记。未标记为符合 CLS 的程序集将被认为是不符合 CLS 的。如果没有 CLS 属性应用于某个类型,则认为该类型与在其中定义该类型的程序集具有相同的 CLS 遵从性。同样,如果没有 CLS 属性应用于某个成员,则认为该成员与定义该成员的类型具有相同的 CLS 遵从性。如果程序元素中包含的元素未标记为符合 CLS,则不能将此程序元素标记为符合 CLS。本主题结尾的示例阐释了 CLSCompliantAttribute 的使用。
只要满足以下两个条件,即使程序集、模块或类型的某些部分不符合 CLS,这些程序集、模块或类型也可以是符合 CLS 的:
如果您设计一个符合 CLS 的类库,您的库将提供能够同多种编程语言互用的保证;因此,您的库将比不符合 CLS 的版本具有更广泛的客户群。
.NET Framework 提供了一个符合 CLS 的类库。有关该类库的更多信息,请参见 .NET Framework 类库参考。