我知道這有點假設,因爲我沒有循環這個,它只在程序運行中出現一次或兩次,所以它只會是一個完全不可思議的時間量,但我想知道是否有一個這些比其他更好,或者根本不重要,因爲優化器會優化掉更糟糕的代碼。以上哪兩項效率更高?
我有這個類:
class FOO_Data
{
private string description, url;
private bool editable;
public FOO_Data(string description, string url, bool editable)
{
this.description = description;
this.url = url;
this.editable = editable;
}
public string Description { get { return description; } set { description = value; } }
public string URL { get { return url; } set { url = value; } }
public bool Editable { get { return editable; } set { editable = value; } }
}
在我的代碼中一些其他的問題,我需要在這個類的一個數組編輯這個類的一個實例。
哪一個更好?這一個:
array[index] = new FOO_Data(data.Description, data.URL, System.Convert.ToBoolean(data.Editable));
或者這一個:
array[index].Description = data.Description;
array[index].Editable = Convert.ToBoolean(data.Editable);
array[index].URL = data.URL;
我會傾向於第一,但我不是很肯定。我希望你能提供任何見解。
非常感謝!
非常感謝您的洞察力。非常感謝:) – niemiro 2012-01-14 14:24:36
在一個循環中運行兩個場景,使用千萬次迭代並用秒錶計時。我會假設唯一的區別是第二個不必爲堆棧值在堆棧上分配新的空間。在第一個中,舊值被銷燬並重新創建,這意味着GC需要清理。(字符串將被銷燬並重新創建,無論如何) – 2012-01-14 14:25:56