为什么无符号整数不符合CLS?
我开始认为类型规范只是为了性能而不是正确性。
并非所有语言都具有无符号整数的概念。例如,VB 6没有unsigned int的概念,我怀疑这促使VB7 / 7.1的设计人员决定也不要实施(现在已在VB8中实施)。
报价:
http://msdn.microsoft.com/en- us/library/12a7a7h3.aspx CLS设计得足够大,可以包含开发人员通常需要的语言结构,但又要足够小,以至于大多数语言都可以支持它。此外,CLS排除了任何无法快速验证代码类型安全的语言构造,因此,所有兼容CLS的语言都可以选择生成可验证的代码。
http://msdn.microsoft.com/en- us/library/12a7a7h3.aspx
CLS设计得足够大,可以包含开发人员通常需要的语言结构,但又要足够小,以至于大多数语言都可以支持它。此外,CLS排除了任何无法快速验证代码类型安全的语言构造,因此,所有兼容CLS的语言都可以选择生成可验证的代码。
更新:几年前,我确实对此感到疑惑,尽管我看不到为什么UInt不能进行类型安全性验证,但我想CLS专家们必须在某个基准点上设置一个临界点支持的值类型数。同样,当您考虑将越来越多的语言移植到CLR的长期目标时,如果绝对没有概念,为什么要强迫它们实现无符号int以获得CLS遵从性呢?