首页 / 知识
关于c#:使用无符号原始类型
2023-04-13 14:06:00

Using Unsigned Primitive Types大多数时候,我们表示的概念永远不能小于0。例如,为了声明长度,我们写:
该名称很好地表达了其用途,但您可以为其指定负值。 似乎在某些情况下,您可以通过这样编写来更清楚地表达您的意图:
我能想到的一些缺点:
有什么想法吗? "在罗马做到入乡随俗。"
从理论上讲,在适用的情况下使用无符号值是有好处的,因为它使代码更具表现力,但这在C#中根本无法做到。我不确定为什么开发人员最初不设计接口来处理
由于一致性通常很重要,因此我建议您走C#路并使用
第二点是最重要的。通常,您应该只使用 如果递减值为0的带符号数字,该数字将变为负数,您可以轻松地对此进行测试。如果递减值为0的无符号数字,它将下溢并成为该类型的最大值-有点难以检查。
我要指出的是,在C#中,您可以打开
对于内部代码(即,在任何互操作性庄园中不会与其他语言一起引用的代码),我投票赞成在情况许可时使用无符号,例如前面提到的 有符号与无符号辩论中的另一点是,某些程序员使用-1这样的值来表示错误,而这些错误原本就没有含义。我赞成这样一种观点,即每个变量都应仅具有一个目的,但是,如果您(或与您一起编码的同事)喜欢以这种方式表示错误,则使变量保持签名可以使您灵活地在以后添加错误状态。 我认为,除非将uint与int巧妙地结合使用,否则会引起开发人员的困惑,除非将其写入公司的开发人员指南中。 例如,如果长度不能小于零,则应在业务逻辑中清楚地表示它,以便将来的开发人员可以阅读代码并知道真正的意图。 只是我的2美分。 您的两点很好。避免它的主要原因是强制转换。投射使它们难以使用。我曾经尝试使用单符号变量一次,但由于框架方法都使用带符号整数,因此我不得不在所有地方都强制使用强制转换。因此,无论何时调用框架方法,都必须进行强制转换。 |
最新内容
相关内容
查看linux库类型命令?
查看linux库类型命令?,系统,工作,信息,状态,电脑,命令,工具,代码,地址,发行,如何查看Linux上程序或进程用到的库查看程序依赖的动态库:readelflinux网卡类型命令?
linux网卡类型命令?,网络,系统,地址,信息,设备,状态,服务,名称,名字,网卡,如何配置Linux网卡配置网卡地址:点击 网络(K) 按钮进行配置网络 选择linux终端命令符号?
linux终端命令符号?,系统,终端,设备,流向,概念,命令,符号,用户,表示,代表,Linux中的常用符号解释1、通配符:“*”、“?”和DOS下一样,当我们不知linux查看命令类型用?
linux查看命令类型用?,信息,系统,情况,命令,实时,工作,设备,电脑,文件,类型,如何区分linux文件类型?1、普通文件类型 Linux中最多的一种文件类linux命令三种类型?
linux命令三种类型?,工作,地址,系统,标准,时间,管理,命令,目录,信息,文件,linux常用命令linux常用命令:查看内核版本:uname-a。图形界面:init5或linux按符号查找命令?
linux按符号查找命令?,系统,命令,字符串,灵活,工具,文件,文件名,选项,参数,模式,求助Linux下带特殊字符的字符串查找方法!linux在文件中怎么查linux命令中的符号?
linux命令中的符号?,系统,数据,档案,电脑,标准,符号,命令,除法,变量,表示,linux命令中的“”和“|”是什么意思?在某些情况下,很多指令我想要一linux命令中逻辑符号?
linux命令中逻辑符号?,系统,标准,数据,资料,命令,用户,符号,权限,所有者,变量,linux中&&和||什么意思1、第一类:root(超级管理员),UID为0,这个用户Python列表类型list合并有哪些方法
Python列表类型list合并有哪些方法?,培训,方法,列表,可能会,数组,切片,下文,字符串,数据类型,请看,在Python编程语言中,有各种数据类型,比如字符Python整除符号
Python整除符号,数字,数据,系统,简介,整数,教育,时间,位置,名字,公司,python整除运算符可以作用于两个整数或实数,计算结果是带小数的商向下取python操作字典类型的常用方法总结
python操作字典类型的常用方法总结,培训,方法,字典,格式,类型,操作,语法,以上,方式,更多,1.has_key()方法可以检查字典python中是否含有指定Python之三大变量类型介绍
Python之三大变量类型介绍,名字,地方,数字,培训,变量,函数,局部,关键词,类型,原样,多值赋给多变量python允许在一行中将多个值赋给多个变量。