And*_*ech 10 c# arrays cls-compliant
我现在正在阅读Albahari的 C#3.0 in a Nutshell and pg.241,在谈论阵列索引时,他说:
基于非零的数组不符合CLS(公共语言规范)
对于非零数组不符合CLS,这究竟意味着什么?它对你的代码有什么影响?
[更新]
这是该书页面的链接.
And*_*are 27
CLS(公共语言规范)为一组通用规则奠定了基础,这些规则保证其他语言(VB.NET,F#等)可以使用您使用C#构建的程序集.基于非零的数组不符合要求,因为其他语言希望数组从零开始.
这是一个更容易理解的示例:
class Foo
{
public void Bar() { }
public void bar() { }
}
Run Code Online (Sandbox Code Playgroud)
此类型不符合CLS,因为它包含两个仅按类型名称不同的成员.使用VB.NET的人如何消除歧义Bar
,bar
因为VB.NET编译器不区分大小写?
因此,基本上CLS是一系列这样的规则来保证语言之间的互操作性.