首页 / 知识
关于c#:为什么unsigned int不符合CLS?
2023-04-11 22:08:00

Why are unsigned int's not CLS compliant?为什么无符号整数不符合CLS? 我开始认为类型规范只是为了性能而不是为了正确性。 并非所有语言都具有无符号整数的概念。例如,VB 6没有无符号整数的概念,我怀疑这推动了VB7 / 7.1的设计者决定不实现(现在在VB8中实现)。 报价:
更新:几年前我确实对此感到疑惑,虽然我不明白为什么UInt不会是类型安全可验证的,但我想CLS人员必须在某个地方有一个截止点,以确定什么是基线最小值支持的值类型数。此外,当您考虑将越来越多的语言移植到CLR的长期时,如果绝对没有概念,为什么迫使他们实施无符号整数以获得CLS合规性呢? 我怀疑,部分问题围绕这样一个事实:C中的无符号整数类型需要表现为抽象代数环的成员而不是数字[意味着,例如,如果无符号16位整数变量等于零,递减它需要产生65,535,如果它等于65,535然后递增它需要产生零。]有时候这种行为非常有用,但数字类型表现出这样的行为可能违背了某些语言的精神。我猜想省略无符号类型的决定可能早于支持已检查和未检查数字上下文的决定。就个人而言,我希望有无符号数和代数环的单独整数类型;将一元减号运算符应用于无符号32位数应产生64位有符号结果[否定零以外的任何内容将产生负数]但将一元减号应用于环类型应该在该环内产生加法逆。 在任何情况下,无符号整数不符合CLS的原因是Microsoft决定语言不必支持无符号整数以便被视为"CLS兼容"。 无符号的int在现实生活中不会获得那么多,但是如果有超过1种类型的int会给你带来痛苦,所以很多语言只会有一些内容。 CLS兼容旨在允许使用多种语言的类... 请记住,没有人会让您符合CLS。 您仍然可以在方法中使用无符号整数,或者作为私有方法的参数,因为它只是CLS兼容限制的公共API。 无符号整数不符合CLS,因为它们在某些语言之间不可互操作。 |
最新内容
相关内容
python错误类型有哪些
python错误类型有哪些,异常,系统,培训,错误,代码,标准,检测,类型,程序,逻辑,python的错误有语法错误和逻辑错误语法错误程序执行过程中,pythonpythonpython是前端语言吗?
pythonpython是前端语言吗?,代码,互动,培训,平台,标准,设计,语言,前端,语法,解释性,python语言属于后端开发语言。Python是一个高层次的结合python判断元素是否是字符串类型
python判断元素是否是字符串类型,培训,异常,类型,实例,字符串,数据类型,对象,元素,参数,序列,isinstance()是Python中的一个内建函数语法:isinpythonpython是什么类型的语言
pythonpython是什么类型的语言,培训,系统,教育,软件,电脑,代码,简介,人工智能,类型,语言,python是一种面向对象、解释型、动态类型计算机程序python脚本语言
python脚本语言,代码,设计,情况,培训,语句,项目,基础,意外,异常,空格,Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被python为什么是胶水语言
python为什么是胶水语言,代码,标准,培训,环境,一致,系统,统一,数据,周期性,服务,胶水语言先从Helloworld开始。所有学python的童鞋都会从这句python语言的全排列怎么提速?
python语言的全排列怎么提速?,培训,情况,代码,排列,元素,程序,方法,之后,语言,生成器,python从n个不同元素中任取m(m≤n)个元素,按照一定的顺python列表的数据类型分析
python列表的数据类型分析,分析,设计,一致,培训,元素,数据类型,列表,索引,实例,逻辑,python列表的数据类型分析说明1、设计出一种循环的数据关于Windows:如何从磁盘获得良好的
关于Windows:如何从磁盘获得良好的并发读取性能,关于Windows:如何从磁盘获得良好的并发读取性能,跟进,自己的,有什么,答案,How to obta关于c#:通用类型检查
关于c#:通用类型检查,关于c#:通用类型检查,类型,布尔,泛型类型参数,方法,Generic type checking有没有一种方法可以强制/限制传递给基元关于c#:通用类型转换FROM字符串
关于c#:通用类型转换FROM字符串,关于c#:通用类型转换FROM字符串,属性,类型,的是,想用,Generic type conversion FROM string我有一个类,我关于不可知的语言:忽略引号部分拆分
关于不可知的语言:忽略引号部分拆分字符串,关于不可知的语言:忽略引号部分拆分字符串,算法,分割,字符串,有什么,Split a string ignori