1

例如,我读到 Visual Basic .net 之前没有运算符重载,因此如果它们也没有作为普通方法提供(添加,而不是运算符+),则无法使用类型重载运算符。

既然 VB 具有此功能,CLSCompliant 属性是否会关心您是否有普通的静态方法,如 Add、Subtract 而不是仅运算符重载?

我编写了一些没有口头静态方法的类型,但只有运算符重载,C# 编译器不在乎。如果有问题,它会警告我,对吗?

4

1 回答 1

6

CLS 合规性与旧的 任何东西无关——它只是您应该合理地期望任意语言处理的核心功能集(在使用您的代码时)。例如,假设语言区分大小写是不合理的,因此成员“Foo”和“foo”虽然在 C# 中合法,但不符合 CLS。

如果您要求,编译器会警告您;添加[CLSCompliant(true)]到类型/程序集/等,它将验证您的声明。

如果您是 ISV,您可能需要考虑 CLS 合规性。如果您只是为自己和团队编写代码,您可能不需要开销。

于 2009-06-06T21:50:07.513 回答