Hit*_*847 -2 c# performance if-statement try-catch
我有这段代码,我想知道他们是否同样工作,只有他们的速度不同或者他们的行为完全不同?
try
{
for (int i = Start; i < End; i++)
{
src.Samples[i].x = i;
src.Samples[i].y = HR[i];
}
}
catch{}
Run Code Online (Sandbox Code Playgroud)
要么
for (int i = Start; i < End; i++)
{
try
{
src.Samples[i].x = i;
src.Samples[i].y = HR[i];
}
catch
{
break;
}
}
Run Code Online (Sandbox Code Playgroud)
只是不要这样做 - 这是滥用例外,IMO.编写代码,以便在没有 try/catch 的情况下安全.如果您不知道是否HR足够长,请使用:
int cappedEnd = Math.Min(HR.Length, End);
for (int i = Start; i < cappedEnd; i++)
{
src.Samples[i].x = i;
src.Samples[i].y = HR[i];
}
Run Code Online (Sandbox Code Playgroud)
(Start如果可能无效,请使用类似的逻辑.)
如果你觉得你出于某种原因绝对不得不使用try/catch,那么我会抓住你期望抛出的确切类型,并把它放在循环的外面 - 只是为了让我感觉更糟糕.不,我不希望任何重大的性能差异.
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |