假设我正在用C#编写一个库,我不知道谁会使用它。
库的公共接口有一些无符号类型 - uint,ushort。显然,这些类型不符合CLS,从理论上讲,可能会有一些语言无法使用它们。
现实中有类似的语言吗?
答案 0 :(得分:5)
我相信在VB.NET的原始版本中,无符号类型是可用的,但是没有支持它们内置到该语言中。当然,这已在后来的版本中得到解决。
此外,我怀疑现在已经不存在的J#不支持无符号类型(假设Java没有)。
答案 1 :(得分:5)
.NET兼容性和CLS合规性是两回事。任何能够以某种方式与.NET框架一起工作的东西都可以说与它兼容。 CLS合规性更严格。它为语言实现者和库设计者提供了一套规则,以便创建一个相互兼容的语言和库的生态系统。
像CLS这样的事情的全部意义在于,您可以避免研究语言的每个示例并找出如何支持它们。如果你想这样做,你可以,但另一种方法是遵守CLS,因此知道你将与其他符合CLS的其他东西(来自过去现在或未来)兼容。
答案 2 :(得分:1)
如果今天没有,可能会有一个tommorow。
答案 3 :(得分:0)
Visual Basic ..?