【问题标题】:Are there languages compatible with .NET that don't support unsigned types?是否有与 .NET 兼容但不支持无符号类型的语言?
【发布时间】:2008-12-13 08:11:07
【问题描述】:
假设我正在用 C# 编写一个库,但我不知道谁会使用它。
库的公共接口有一些无符号类型——uint、ushort。显然,这些类型不符合 CLS,理论上讲,可能存在无法使用它们的语言。
现实中有这样的语言吗?
【问题讨论】:
标签:
c#
.net
programming-languages
unsigned
【解决方案1】:
我相信在 VB.NET 的原始版本中,无符号类型是可用的,但语言中不支持它们。当然,这已在以后的版本中得到解决。
此外,我怀疑现在已经不复存在的 J# 不支持无符号类型(鉴于 Java 没有任何类型)。
【解决方案2】:
.NET 兼容性和 CLS 合规性是两个不同的东西。任何可以以某种方式与 .NET 框架一起工作的东西都可以说是与它兼容的。 CLS 合规性更加严格。它为语言实现者和库设计者提供了一套规则,以创建相互兼容的语言和库的生态系统。
像 CLS 这样的东西的全部意义在于让您不必研究语言的每个示例并弄清楚如何支持它们。如果您想这样做,您可以这样做,但另一种选择是遵守 CLS,因此知道您将与也符合 CLS 的任何其他事物(过去现在或未来)兼容。