为什么未签署整数不符合CLS?

我开始认为的类型说明书仅用性能并不正确性。

有帮助吗?

解决方案

不是所有语言都有的概念unsigned int.例如VB6没有概念的unsigned int我怀疑开车决定的设计师的VB7/7.1不到实施以及(这是实现,现在在VB8).

引用:

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

CLS的目的是要足够大,以包括语言 构造正常需要通过开发人员,但足够小的 大多数语言都能够支持它。此外,任何语言 结构,使得无法迅速验证的类型安全 代码被排除在CLS,以便所有符合CLS的语言 可以产生可核查的代码如果他们选择这样做。

更新:我想知道这一些年后,虽然我不能看为什么UInt不会被类型的安全可核查的,我猜CLS们必须有一个截断点的地方为什么会是基线的最小数值类型的支持。还当你认为有关较长时期内,越来越多的语言正在移植到CLR为什么迫使他们实现unsigned int获得CLS遵守,如果没有绝对的概念,有史以来?

其他提示

一部分问题,我怀疑,围绕着事实上,未签名的整数类型C都需要表现为成员的一个抽象的代数环,而不是作为数字[意义,例如,如果一个未签署的16位整数的变量等于零,减少它 需要 以产生65535个,如果这等于65535个随后的递增需要的产量为零。] 有些时候这种行为是非常有用的,但数字类型表现出这种行为可能已经针对精神的一些语言。我猜想,决定省略无符号的类型可能早的决定支持两个检查和未经检查的数字环境中。就个人而言,我希望有单独的整数类型的未签名的数字和代数;施加一元减去操作者未签署的32位数,应产生一64位签署的结果[否定的任何其他零将产生一个负数量],但是适用一元减去到一个环种类型的应收率的加法逆在这一环。

在任何情况下,未签名的原因整数都不符合CLS是,微软决定的语言没有支持unsigned整数以被认为是"CLS兼容".

Unsigned int不得你,如在现实生活中,但是具有超过1类型的int让你痛苦,所以许多种语言的只有烧焦的int.

符合CLS是旨在允许的一类可采用许多语言...

记住,没有人让你以符合CLS。

你仍然可以使用unsigned int 一个方法,或者作为parms到 方法,因为它仅仅是公共API,符合CLS限制了.

无符号的整数都不符合CLS是因为他们不可互操作之间某种语言。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top