19
A
回答
50
相信没有,因为在编译的IL没有区别。
var x = null as object;
var x1 = (object)null;
object x2 = null;
被编译到
IL_0001: ldnull
IL_0002: stloc.0 // x
IL_0003: ldnull
IL_0004: stloc.1 // x1
IL_0005: ldnull
IL_0006: stloc.2 // x2
你可以看到所有的当地人都被初始化只使用ldnull
操作码为空,所以没有区别。
7
首先:不,我认为这三个调用是基本相等。
其次:即使它们之间有什么区别,它肯定会是如此微不足道,这将是在一个应用程序完全无关。
这是这样一个小片的任何程序,即侧重于这里的优化和在类似的情况下,往往会浪费时间,并且可能在某些情况下使你的代码没有很好的理由更复杂。
有一个较长的interesting discussion about this on the programmers.stackexchange网站。
相关问题
- 1. 初始化VAR为null
- 2. 初始化var by if - else
- 3. 如何初始化var?
- 4. 在C#中初始化Var#
- 5. 在scala中初始化var
- 6. “class var”初始化为零吗?
- 7. 将对象初始化为空或新?
- 8. 将变量初始化为空
- 9. 将数组初始化为空对象
- 10. 初始化时,单例实例var不为空
- 11. 空初始化
- 12. wpf combobox selecteditem在初始化初始化后为空
- 13. Objective-c:初始化实例var
- 14. 如何设置初始化var c#?
- 15. 使用SpriteKit的swift初始化var?
- 16. 如何在foreach中初始化var
- 17. 动态初始化var过滤器
- 18. 如何初始化VAR Record参数
- 19. 如何将DateTimePicker初始化为空或空?
- 20. PHP类属性初始化后为空
- 21. 字符串不断初始化为空
- 22. C++初始化字符指针为空
- 23. JTextField被初始化,但似乎为空
- 24. PHP对象为空初始化
- 25. 将@InitBinder初始化外部化为WebBindingInitializer
- 26. 为什么SQLAlchemy将hstore字段初始化为空?
- 27. 初始化空git仓库
- 28. 初始化RDD清空
- 29. 用空格初始化listitem?
- 30. 初始化空数组
从埃里克利珀:_IF你有两匹马,你想知道哪两个是faster_ **然后比赛你的马** http://ericlippert.com/2012/12/17/performance-rant/ –
'var'与'someothertype'将永远不会*具有运行时性能影响,因为'var'是一个* compile *时间结构。 –
所有这些都比将x的值初始化为您希望它的值(这可能是方法调用的返回值)要慢。的 –