为什么无符号整数不符合CLS?

我开始认为类型规范只是为了性能,而不是为了正确性.

推荐答案

并非所有语言都有无符号整数的概念.例如,VB6没有未签名整数的概念,我怀疑这促使VB7/7.1的设计者决定不实现它(它现在在VB8中实现).

引用以下内容:

http://msdn.microsoft.com/en-us/library/12a7a7h3.aspx

CLS设计得足够大,可以包含该语言 开发人员通常需要但足够小的构造 大多数语言都能够支持它.此外,任何语言 构造,该构造使得无法快速验证类型安全性. 已从CLS中排除,因此所有符合CLS的语言 可以生成可验证的代码,如果他们 Select 这样做的话.

更新:几年前我确实想知道这一点,虽然我看不出为什么UInt不能进行类型安全验证,但我猜CLS人员必须在某个地方有一个分界点,以确定支持的最小值类型基准数量是多少.另外,从长远来看,越来越多的语言被移植到CLR,如果完全没有概念,为什么要强迫它们实现未签名的INT来获得CLS合规性呢?

.net相关问答推荐

从没有流的EventStore中读取流不存在异常

ECS服务无法从Cognito获取配置

Dotnet 反射:使用 F# 中的out参数调用 MethodInfo 上的调用

MassTransit RespondAsync 无法返回空值

使用 MassTransit、.NET Core 和 RabbitMQ 的设计挑战

标签从右向左增长

在一个 LINQ 查询中获取两列的总和

如何中止任务,如中止线程(Thread.Abort 方法)?

实体框架 - 无法将 lambda 表达式转换为类型字符串,因为它不是委托类型

如果需要,将方案添加到 URL

双倍的? = 双倍? + 双倍?

如何在我的 C# 程序的面板中运行另一个应用程序?

WCF服务客户端:内容类型text/html;响应消息的charset=utf-8 与绑定的内容类型不匹配

react 式扩展使用的好例子

我应该绑定到 ICollectionView 还是 ObservableCollection

找不到库 hostpolicy.dll

例外:不支持 URI 格式

MailMessage,Sender 和 From 属性的区别

.NET 的 XPath 和 XSLT 2.0?

名称 <...> 不存在于命名空间 clr-namespace <...>