C#中+前置运算符为何无法将负数转正数?及负运算符称谓咨询
C#一元正负运算符问题解答
为什么+myInt没法把负数转正?
C#里的+在这里是一元正运算符,它的逻辑就是直接返回操作数的原值,不管操作数是正还是负,+x的结果永远等于x。而你用的-是一元负运算符,它的作用是返回操作数的相反数,所以正数变负,负数变正。
举实际例子:
- 当
myInt = 5时,-myInt计算的是5的相反数,输出-5; - 当
myInt = -5时,+myInt只会返回-5本身,如果要得到正数,应该用-myInt(此时计算的是-5的相反数,结果是5)。
这种设计是C#的语言规范,一元正运算符本来就没有符号翻转的功能,它更多是为了语法对称,或者用来明确表达“取原值”的意图。
-myInt里的-叫什么?
这个-是一元负运算符(Unary Negation Operator)。注意它和减法里的-(二元减运算符,比如a - b)是同一个符号,但属于不同的运算符——一元负运算符只需要一个操作数,二元减运算符需要两个操作数。
内容的提问来源于stack exchange,提问作者Occultation
相关产品推荐
相关产品推荐

