74

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

我已经了解 CLS 合规性:

许多人写道:“如果您编写代码,则应该编写符合 CLS 的代码。” 但据我所知,没有理由在通用软件中使用 CLS 合规性。

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

4

4 回答 4

56

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

于 2009-12-01T20:15:45.990 回答
50

如果您要分发库,则 CLS 合规性尤其重要 - 具体而言,编写符合 CLS 的保证您的库将可用于所有符合 CLS 的语言。

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

于 2009-12-01T20:18:22.413 回答
20

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

于 2009-12-01T20:16:28.717 回答
12

让您的代码符合 CLS可能没有特定的原因,但人们将其称为“最佳实践”——您应该这样做,因为这是一个好习惯,而不是在特定情况下明显更好。

换句话说,使您的代码符合 CLS是一个好主意,除非您有理由这样做。

于 2009-12-01T20:15:40.593 回答