假設我構成一個對象,其屬性,需要從在方法確定的其它值,例如轉換:(其中,此在C#中,類的屬性是並行還是按順序初始化?
var var1;
var var2;
//do stuff with var1 and var2
MyClass myClass = new MyClass
{
Property1 = var1,
Property2 = var2
};
如果MyClass
屬性都評估,並設置在同一時間是可能的),我認爲這可能是更有效的下放是設置var1
和var2
分離方法的操作,就像這樣:
MyClass myClass = new MyClass
{
Property1 = SetProperty1(),
Property2 = SetProperty2()
}
private static object SetProperty1()
{
//do stuff
}
private static object SetProperty2()
{
//do stuff
}
但是,如果每個屬性是爲了評估(如一個步進時看到通過這樣的代碼),任何這樣的好處從爆發出新的方法就失去了。
編輯對象的屬性是否同時初始化,或按順序?
他們的順序初始化指定的任務。 –
計算機並不擅長處理事務,除非您希望您的對象由多個線程設置。 – Enigmativity
@Enigmativity計算機*非常善於同時處理事務。即使只有一個線程,它也可能花費很少的時間只能一次執行單個操作。它所做的就是努力確保同時運行各種操作的行爲無法與完全按順序運行時會發生的情況明顯區分開來,從而允許程序員編寫代碼*就像程序依次運行所有內容一樣,因爲編寫併發代碼非常困難*對於程序員來說*(正確),即使它對計算機來說非常簡單*。 – Servy