为什么unsigned int不符合CLS?

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

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


慕姐8265434
浏览 621回答 3
3回答

MYYA

我怀疑,部分问题是围绕这样一个事实,即C中的无符号整数类型必须表现为抽象代数环的成员而不是数字[例如,如果无符号16位整数变量等于零, ,递减则需要产生65,535,并且如果它等于65,535那么就需要产生零递增。]有些时候,这种行为是非常有用的,但数字类型表现出这种行为可能已经对一些语言的精神。我猜想,省略无符号类型的决定很可能早于支持选中和未选中的数字环境的决定。我个人希望无符号数和代数环有不同的整数类型。施加一元减号操作者无符号的32位的数字应产生一个64位有符号结果[否定除零以外的任何将产生一个负号],但施加一元减号到环型应该环内产生添加剂逆。无论如何,无符号整数不符合CLS的原因是Microsoft决定语言不必为了支持“ CLS兼容”就必须支持无符号整数。

慕虎7371278

在现实生活中,无符号int不会给您带来太多好处,但是拥有不止一种int类型会给您带来痛苦,因此许多语言只使用int。符合CLS的目的是允许使用多种语言的课程…请记住,没有人能使您符合CLS。您仍然可以在方法内使用无符号整数,也可以将其用作私有方法的参数,因为它仅是CLS兼容限制的公共API。
打开App,查看更多内容
随时随地看视频慕课网APP