【发布时间】:2009-12-01 20:11:39
【问题描述】:
我找到了很多关于 CLS 合规性的页面。
我了解 CLS 合规性:
许多人写道:“如果您编写代码,则应该编写符合 CLS 的代码。” 但据我所知,没有理由在通用软件中使用 CLS 合规性。
我是对的,还是我错过了什么?
【问题讨论】:
标签: c# cls-compliant
我找到了很多关于 CLS 合规性的页面。
我了解 CLS 合规性:
许多人写道:“如果您编写代码,则应该编写符合 CLS 的代码。” 但据我所知,没有理由在通用软件中使用 CLS 合规性。
我是对的,还是我错过了什么?
【问题讨论】:
标签: c# cls-compliant
如果您编写库或框架,确保您的库可用于任何 CLR 语言是有意义的。
【讨论】:
如果您要分发库,则 CLS 合规性尤其重要 - 具体而言,编写符合 CLS 的代码可确保您的库可用于所有符合 CLS 的语言。
例如,Visual Basic 不区分大小写,而 C# 是。 CLS 合规性的要求之一是公共(和受保护的)成员名称不应仅按大小写不同,从而确保您的库可以由 Visual Basic 代码或任何其他不区分基于案例。
【讨论】:
答案是允许跨 .NET 语言的最大兼容性。 CLS 是一种通用语言,它允许 C# 程序集与 F#、Iron Python、C++/CLI、VB.NET、Boo 和所有其他 .NET 语言一起使用。跨出该边界,您的程序集可能会正常工作,但不一定。
【讨论】:
可能没有特定理由让您的代码符合 CLS,但人们将其称为“最佳实践”——您应该这样做,因为这是一个好习惯,而不是在特定情况下明显更好。
换句话说,最好让你的代码符合 CLS,除非你有理由不这样做。
【讨论】: