我一直想知道我已经有一段时间的编码习惯了,我想知道是否:
想象一下,您有一个更新循环以及两个不同的状态A和B。在状态A中,您需要一个特定的变量V,该变量在退出状态A(或进入状态B)时希望清除。所以,我通常要做的是在B中创建一个函数,说:
if V not null:
V = null
这意味着每次我进入循环时,我都会检查V不是空条件。这有费用吗?有没有更清洁的方法?
非常感谢!
答案 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();
}