- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在查看一些示例 C# 代码时,注意到一个示例将返回值包装在 () 中。
我总是刚刚完成:
return myRV;
有区别吗:
return (myRV);
最佳答案
更新:这个问题是 the subject of my blog on 12 April 2010 .感谢您提出有趣的问题!
在实践中,没有区别。
在理论中可能存在差异。 C# 规范中存在三个有趣的点,这可能会带来差异。
首先,将匿名函数转换为委托(delegate)类型和表达式树。请考虑以下事项:
Func<int> F1() { return ()=>1; }
Func<int> F2() { return (()=>1); }
F1
显然是合法的。是 F2
吗?从技术上讲,没有。 The spec在第 6.5 节中说存在从 lambda 表达式 到兼容委托(delegate)类型的转换。那是 lambda 表达式吗?不,它是一个包含 lambda 表达式 的括号表达式。
Visual C# 编译器在这里违反了规范并为您丢弃了括号。
第二个:
int M() { return 1; }
Func<int> F3() { return M; }
Func<int> F4() { return (M); }
F3
是合法的。是 F4
吗?不可以。第 7.5.3 节规定括号内的表达式不能包含方法组。同样,为了您的方便,我们违反了规范并允许转换。
第三:
enum E { None }
E F5() { return 0; }
E F6() { return (0); }
F5
是合法的。是 F6
吗?否。规范指出存在从文字零到任何枚举类型的转换。 "(0)
"不是文字零,它是一个括号后跟文字零,然后是括号。我们违反了此处的规范,实际上允许任何编译时常量表达式等于零,而不仅仅是字面上的零。
因此,在任何情况下,我们都允许您逍遥法外,即使从技术上讲这样做是违法的。
关于c# - return myVar 与 return (myVar) 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2186595/
我觉得 for(int i = 0; i < 2; i++) 和 for(int i = 0; i < 2; ++i) 不应该做同样的事情。对于第二个例子,从循环开始 i 应该等于 1 对我来说更符合
我试图牢牢掌握异常情况,以便改进我的conditional loop implementation .为此,我进行了各种实验,扔东西,看看会被抓到什么。 这个让我惊喜不已: % cat X.hs mo
我只是想回答一个问题,但我遇到了一些我不明白的事情!为什么如果我在文件中使用内联 CSS 或 CSS,如本例中的颜色,结果就不一样! 代码相同,但第一段是绿色,第二段是红色! 我真的不明白为什么? 谢
我目前正在学习 CSS 并进行试验,我偶然发现了输出中的这种差异。所以这是代码: .red-text { color: red;
"""module a.py""" test = "I am test" _test = "I am _test" __test = "I am __test" ============= ~ $ p
在向 Firestore 写入文档时,我经常看到 serverTimestamp() 标记和 new Date() 对象之间的差异不为零。 差异范围从几 秒到几十 分钟。 他们不是在做同样的事情吗?
据我了解,2.675 和 numpy.float64(2.675) 都是相同的数字。然而,round(2.675, 2) 给出 2.67,而 round(np.float64(2.675), 2) 给
问题本身的描述很简单。我正在测试 C++11 中 std::thread 库和 boost::thread 库的区别。 这些的输出: #include #include #include int
我只是想将文本文件读入 pyspark RDD,我注意到 sqlContext.read.load 之间的巨大差异和 sqlContext.read.text . s3_single_file_inp
SC.exe 和 InstallUtil 都可以安装/卸载 Windows 服务。但它们的工作方式似乎并不相同。 有什么区别? 例如,InstallUtil 失败(找不到某些文件或依赖项错误),而 S
我认为Thread对象就像是带有名称和静态Thread.CurrentThread()的抽象对象,就像访问Thread对象的方式一样。显然,这是错误的假设。。是这样的吗?
我认为Thread对象就像是带有名称和静态Thread.CurrentThread()的抽象对象,就像访问Thread对象的方式一样。显然,这是错误的假设。。是这样的吗?
我是一名优秀的程序员,十分优秀!