C#int i = +1是什么意思?

Dud*_*ord -1 c#

我正在浏览堆栈溢出,我遇到了这个问题:

在C#中复制文件时检查重复的文件名

在这个问题中,这个小宝石存在:

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例如 假设您将一组操作链接在一起,并且对于每个附加元素,您希望更改整体结果的符号.这使您可以存储操作符并在最终决定输出结果时盲目地应用它