【问题标题】:C# variable declaring [duplicate]C#变量声明[重复]
【发布时间】:2013-12-09 05:33:53
【问题描述】:

这两种声明(引入)变量的方式之间有什么实际区别(速度、内存)吗?哪种方法更好?

示例 1:

for (int i = 0; i < myObjects.Length; i++)
{
    MyObject m = myObjects[i];
}

示例 2:

MyObject m = null;

for (int i = 0; i < myObjects.Length; i++)
{
    m = myObjects[i];
}

谢谢。

【问题讨论】:

  • 如果你打算在 for 循环中使用对象,那么只在 for 中使用它是好的。 stackoverflow.com/questions/8803674/…
  • 对不起,我应该更多地搜索以前的问题。这似乎已经在较早的案例中得到了回答。

标签: c# variables declaration


【解决方案1】:

示例 1 使得 m 在内存中仅在 for 循环范围内“活着”。

示例 2 使 m 在 for 循环完成执行后继续占用内存。

我会选择示例 1,这就是为什么: Declaring variables inside or outside of a loop(我真的不会详细告诉你,强迫你阅读链接。)

【讨论】:

    【解决方案2】:

    Performance-wise 都编译成同一个 IL,所以没有区别。

    第一个更好,因为您的意思是在每次迭代中都有一个新对象。如果循环条件失败,也不需要对象

    【讨论】:

    • 你为什么认为它们编译成相同的 IL?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 2020-01-15
    • 2013-07-15
    • 1970-01-01
    • 2015-06-30
    • 2020-02-02
    相关资源
    最近更新 更多