C#括号返回null

Ale*_*ksP 1 c# null

请告诉我,两者之间有什么不同

return null;
Run Code Online (Sandbox Code Playgroud)

return (null);
Run Code Online (Sandbox Code Playgroud)

有时我会看到每个例子

Jon*_*eet 8

行为无论如何都没有区别 - 但后者显然是单一的.我之前看到它是一个迹象,表明作者似乎认为这return是一个函数调用,或者至少想要对它进行处理.(有时每个返回值都有括号.)

只需使用第一个版本.


Pat*_*man 6

括号没有任何意义.

当您查看生成的实际IL代码时,这两个语句完全相同.

根据规格,()运营商有两个目的:

括号也用于表示(一组)条件条件,例如:

if (a && (b || c))
Run Code Online (Sandbox Code Playgroud)

要么:

switch (a)
Run Code Online (Sandbox Code Playgroud)

或者指定运算符优先级(偏离默认值):

(a + b) * c
Run Code Online (Sandbox Code Playgroud)

拉姆巴表达:

(x) => { }
Run Code Online (Sandbox Code Playgroud)

等等

你的代码既不是他们的代码,也没用.

  • 改变隐含的运算符优先级将是一个重要的; 是'a + b*c`与`(a + b)*c`或'a +(b*c)`相同?捆绑表达 - "foreach","switch","catch"等都使用括号 (3认同)
  • 实际上,括号有很多用途...... (2认同)