循环清除值的最佳方法?

时间:2018-06-28 15:57:51

标签: c# loops unity3d

我一直想知道我已经有一段时间的编码习惯了,我想知道是否:

  • 这很重要
  • 有一个更好的方法

想象一下,您有一个更新循环以及两个不同的状态A和B。在状态A中,您需要一个特定的变量V,该变量在退出状态A(或进入状态B)时希望清除。所以,我通常要做的是在B中创建一个函数,说:

if V not null: 
    V  = null

这意味着每次我进入循环时,我都会检查V不是空条件。这有费用吗?有没有更清洁的方法?

非常感谢!

2 个答案:

答案 0 :(得分:0)

这是我通常的做法:

byte someValueType = 1;
object someRefType = null;


while (condition)
{
    // do stuff

    someValueType = 0; // assuming 0 is the default value
    someRefType = null;
}

据我所知,这样做的成本是最小的。 (引用和值)都在堆栈中,所以不用担心。

答案 1 :(得分:0)

无论何时,只要您将状态切换为变量V,都只需将其赋为null,就无需检查其是否已经为null。无论哪种方式,这里的成本都是最小的。

if(A) 
{
   V = null;
   goToA();
}
if (B) {
   V = null;
   goToB();
}