對於您可以使用System.Diagnostics.Stopwatch
這樣所有問題。
var stopwatch = new Stopwatch();
stopwatch.Start();
float maxDepth = 0;
int maxnumber = 0;
for (int i = 0; i < defects.Total; i++)
{
if (defects[i].Depth > maxDepth)
{
maxDepth = defects[i].Depth;
maxnumber = i;
}
}
stopwatch.Stop();
Debug.WriteLine("Elapesed time for method 1: {0} msec.", stopwatch.ElapsedMilliseconds);
stopwatch.Reset();
stopwatch.Start();
maxDepth = 0;
maxnumber = 0;
int defectNumber = defects.Total;
for (int i = 0; i < defectNumber; i++)
{
if (defects[i].Depth > maxDepth)
{
maxDepth = defects[i].Depth;
maxnumber = i;
}
}
stopwatch.Stop();
Debug.WriteLine("Elapesed time for method 2: {0} msec.", stopwatch.ElapsedMilliseconds);
然後你得到了確切的信息。 (最好的方法是進行幾次運行並使用平均值)
爲什麼不試試它看到了嗎? – asawyer
編譯器會知道在循環過程中Total不會改變,並且會將其替換爲值,因此無論如何您最終都會得到第二個代碼。 – MBen
@MBen:編譯器如何知道這一點? *我們*不知道。我們不知道什麼是「缺陷。總體」。 –