将boolean分配给局部变量并重用它或使用if复制比较是否更好?

Dan*_*mak 3 c# performance boolean razor asp.net-mvc-4

想象一下,我有这个代码(Razor语法):

<script type="text/javascript">
@{
    var i = 0;
    foreach (var notify in @Model)
    {
        if (i > 1) // <------ First comparison 
        {
            <text>setTimeout(function() {</text>
        }

        <text>
        // JavaScript
        </text>

        if (i > 1) // <------  Second same comparison
        {
            <text>}, 1000 * @i);</text>
        }

        i++;
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

请注意,int i比较两次.将第一次比较的结果与局部变量相关联然后检查它的值或进行第二次简单比较是否更好?像这样:

<script type="text/javascript">
@{
    var i = 0;
    foreach (var notify in @Model)
    {
        bool higherThanOne = i > 1;
        if (higherThanOne)
        {
            <text>setTimeout(function() {</text>
        }

        <text>
        // JavaScript
        </text>

        if (higherThanOne)
        {
            <text>}, 1000 * @i);</text>
        }

        i++;
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

我多次遇到类似的情况,我不确定什么更好.我想避免为变量分配代码,因为不友好的Razor + JavaScript连接语法.

usr*_*usr 5

在这种情况下,是的,要记录,这个神奇的条件意味着什么:

bool wrapInTimeout = i > 1;
Run Code Online (Sandbox Code Playgroud)

不要叫它higherThanOne.那将是一个无益的名字.

根据变量的名称命名变量,而不是根据计算方式.