【问题标题】:Is there any difference between new int[0] and new int[]{} [duplicate]new int[0] 和 new int[]{} 之间有什么区别吗[重复]
【发布时间】:2017-10-17 22:13:34
【问题描述】:

我想初始化一个新的 int 数组。

有什么优点:

var myNewArray = new int[]{};

还有:

var myNewArray = new int[0];

我应该更喜欢哪一个,还是只是代码风格的问题?

【问题讨论】:

  • @Bartosz 感谢您的链接。但是,这是关于使用项目初始化数组。我特别想要一个空数组。
  • 没有区别。但从 NET4.6 开始,首选方法是使用 Array.Empty<T>(),它返回一个单例实例。
  • @IvanStoev 非常感谢!我知道 Enumerable.Empty 但不知何故忽略了 Array.Empty.

标签: c#


【解决方案1】:

没有区别。两者都产生相同的 IL:

IL_0000:  nop         
IL_0001:  ldc.i4.0    
IL_0002:  newarr      System.Int32
IL_0007:  stloc.0     // myNewArray
IL_0008:  ret         

【讨论】:

    猜你喜欢
    • 2018-02-25
    • 1970-01-01
    • 2020-09-24
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 2012-10-10
    相关资源
    最近更新 更多