我正在浏览堆栈溢出,我遇到了这个问题:
在这个问题中,这个小宝石存在:
int i = +1
Run Code Online (Sandbox Code Playgroud)
我以前从未见过这种语法.所以我在visual studio中打开了交互式C#窗口:
Microsoft (R) Roslyn C# Compiler version 1.3.4.60902
Loading context from 'CSharpInteractive.rsp'.
Type "#help" for more information.
> int i = +1;
> i
1
> +1 == 1
true
Run Code Online (Sandbox Code Playgroud)
这类似+=吗?这是一些新的语法吗?这个运营商是什么?它与普通变量声明有什么不同?
Dam*_*ver 10
这是一元加运算符.从文档:
对数字类型进行一元+运算的结果就是操作数的值.
在大多数理智的背景1,你正在写的代码,这将是可选的(+1是一样的1,如果我们写的文字).
它主要用于与一元减运算符对称.
大多数时候,你会不会写包含它的代码,但如果你生成代码,它可以很方便的可以申请一元运算符无论哪种方式2.
它与之无关+=.
1疯狂代码可以为自定义类型覆盖此运算符,并使其不仅仅是无操作.但我很想了解一个使代码更容易理解的用例,这应该是大多数代码的主要目标.
2例如 假设您将一组操作链接在一起,并且对于每个附加元素,您希望更改整体结果的符号.这使您可以存储操作符并在最终决定输出结果时盲目地应用它