【发布时间】:2014-08-26 13:47:01
【问题描述】:
想象一下我有这个代码(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>
请注意,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>
我多次遇到类似的情况,但我不确定哪个更好。由于不友好的 Razor + JavaScript 连接语法,我想避免将代码分配给变量。
【问题讨论】:
-
“更好”在什么意义上?回答这个问题,你就会回答你自己的问题。
-
性能、约定、代码可读性。
标签: c# performance asp.net-mvc-4 razor boolean