为什么我应该编写符合CLS的代码?

我发现了很多关于CLS合规性的网页。

我了解到CLS的合规性:

  • 是保证不同assembly兼容性的一种方法 。
  • 是一种声明高安全性代码的方法

许多人写“如果你写代码,你应该写它CLS兼容”。 但据我所知,在通用软件中没有理由使用CLS。

我是对的,还是我错过了什么?

如果您编写一个库或框架,确保您的库可以从任何CLR语言中使用是有意义的。

如果您正在分发库,则CLS合规性尤其重要 – 特别是,编写符合CLS的合规性保证您的库可以被所有符合CLS的语言使用。

例如,Visual Basic不区分大小写,而C#是。 符合CLS的要求之一是公共(和受保护的)成员名称不应仅仅因大小写而不同,从而确保您的库可以安全地使用Visual Basic代码或任何其他不基于案件。

可能没有什么特别的理由让你的代码符合CLS标准,但是人们提到它是一个“最佳实践” – 你应该这样做,因为这是一个好习惯,而不是特定的场景。

换句话说,除非你有一个理由,否则让你的代码符合CLS 是一个好主意

答案是允许跨.NET语言的最大兼容性。 CLS是允许C#程序集与F#,Iron Python,C ++ / CLI,VB.NET,Boo和所有其他.NET语言一起工作的通用语言。 跨越边界,你的程序集可能正常工作,但不一定。