为什么我应该编写符合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语言一起工作的通用语言。 跨越边界,你的程序集可能正常工作,但不一定。