使用“ExpressionBodiedFunctionsandProperties”有什么好处我确实看到很多人使用这个新功能,但是使用这些表达式的好处?示例:publicoverridestringToString()=>string.Format("{0},{1}",First,Second);publicstringText=>string.Format("{0}:{1}-{2}({3})",TimeStamp,Process,Config,User);这个问题与这个问题不同,因为我不仅要问性能和效率是否真的发生变化,还要考虑编译代码(IL代码)的差异,以及它是否是最佳实践,是否应该在现实世界中使用。这个问题也是题外话,因为我要求的是现实生活中的商业经验,而不是建议。所以,不推荐,但请解释您为什么会或为什么不使用该功能以及您有什么经验!它提供了更好的可读性并节省了代码中的一些空间。这是更好的。文字表达式只是提供了一种紧凑且更简洁的方法来声明只读属性。从性能的角度来看,你这样写:publicboolMyProperty{get{returnmyMethod();}}privateboolmyMethod(){returntrue;}或者这个:publicboolMyProperty=>myMethod();privateboolmyMethod(){returntrue;}没有区别,因为它以相同的方式转换为IL。但请注意:正文表达式是VisualStudio2015及更新版本上可用的默认功能,但如果您想在旧版VS中使用它,则需要从nuget安装C#6.0回答我的一个问题。我测试了IL代码是否与以下结果相同:staticvoidMain(string[]args){Console.WriteLine(MyClass.GetTexted);}classMyClass{privatestaticstringdontTouchMe="test";publicstaticstringGetTexted{get{returndontTouchMe+"1";}}//公共静态字符串GetTexted=>dontTouchMe+"1";}...将生成相同的IL代码:00993376call[randomvalue]0099337Bmovdwordptr[ebp-40h],eax0099337Emovecx,dwordptr[ebp-40h]00993381call7188664000993386nop}00993387nopes38099,[ebp-0Ch]0099338Bpopebx0099338Cpopesi0099338Dpopedi0099338Epopebp0099338Fret[randomvalue]部分是唯一更改的代码,它确实有意义,因为它每次编译都会更改。我还是在校学生,所以只能从我的角度回答其他问题(这不是企业角度):用过,需要多了解C#学习教程。希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
