我发现了很多关于CLS合规性的网页。
我了解CLS合规性:
许多人写道“如果你编写代码,你应该把它写成符合CLS的。” 但据我所知,没有理由在通用软件中使用CLS。
我是对的,还是我错过了什么?
答案 0 :(得分:44)
如果您编写库或框架,确保您的库可以从任何CLR语言使用是有意义的。
答案 1 :(得分:41)
如果您正在分发库,CLS合规性尤为重要 - 特别是,编写符合CLS的保证,您的库可以被所有符合CLS的语言使用。
例如,Visual Basic不区分大小写,而C#是。 CLS合规性的要求之一是公共(和受保护的)成员名称不应仅仅根据大小写的不同而不同,从而确保您的库可以被Visual Basic代码安全地使用,或者基于以下任何其他不区分的.NET语言情况下。
答案 2 :(得分:16)
答案是允许跨.NET语言的最大兼容性。 CLS是通用语言,它允许C#程序集与F#,Iron Python,C ++ / CLI,VB.NET,Boo和所有其他.NET语言一起使用。走出那个边界,你的装配可以正常工作,但不一定。
答案 3 :(得分:11)
可能没有特定的理由让您的代码符合CLS,但人们指的是它是“最佳实践” - 您应该这样做,因为这是一个好习惯,而不是对特定情况更好。
换句话说,除非你有不的理由,否则使你的代码符合CLS是个好主意。