我經常被這個困惑。我總是被教過使用變量或常量來命名我常用的數字,但如果它降低了程序的效率,我還應該這樣做嗎?下面有一個例子:使用變量與幻數的性能影響
private int CenterText(Font font, PrintPageEventArgs e, string text)
{
int recieptCenter = 125;
int stringLength = Convert.ToInt32(e.Graphics.MeasureString(text, font));
return recieptCenter - stringLength/2;
}
上述代碼是使用命名變量,但運行速度較慢則此代碼:
private int CenterText(Font font, PrintPageEventArgs e, string text)
{
return 125 - Convert.ToInt32(e.Graphics.MeasureString(text, font)/2);
}
在這個例子中,在執行時間的差異是最小的,但大約在較大的什麼代碼塊?
發表了同樣的方法兩次,然後忘了把長度除以2.問題現在是正確的。 – Nathan
「可讀性」和「簡潔性」之間有一個主觀的灰色區域........意見會有所不同。 – granadaCoder
我更喜歡第一個,因爲從現在起6個月,有人可能會弄清楚我做了什麼。但是我會爲125和2定義「const」值...............所以這些值意味着什麼......不僅僅是一些隨機的int在那裏掛起。 – granadaCoder