我有兩個班,一個有很多屬性,另一個有一對。我需要在較小的類中引用較大類的一些屬性,但是我想知道將值單獨傳遞是否更好。例如:當您在另一個課程中引用一個課程時,實際發送/保存了多少數據?
public class LargeClass
{
private string _var1;
private string _var2;
private string _var3;
//...
private string _var20;
//stuff
}
public class SmallClass
{
private LargeClass _largeclass;
private string _var1;
public SmallClass(LargeClass LargeClass)
{
_largeclass = LargeClass;
_var1 = _largeclass.Var1 + _largeclass.Var2;
}
}
或者,我可以爲小班做到這一點,並通過我需要直接值:
public class SmallClass2
{
private string _var1;
private string _var2;
private string _var3;
public SmallClass2(string Var1, string Var2)
{
_var1 = Var1;
_var2 = Var2;
_var3 = _var1 + _var2;
}
}
基本上,我的問題是,這些人使用了更少的空間(包括而運行時,如果序列化)?
更新:我能夠重寫我的類,以便較小的類對象引用其父對象,並發現它確實在序列化時使用較少的空間。很顯然,這個結果是個案,但我的代碼基本上將它從每個存儲文件路徑的小類的實例改爲一個字符串,以使該類能夠使用對父對象的引用即時創建路徑字符串。
由此產生的序列化數據文件減小了55%。
你在這裏應該考慮的是,如果你的SmallClass應該知道'LargeClass'或者不知道這兩者有什麼關係。當你需要擔心這種微小的內存/性能差異時,情況非常罕見。 – doblak 2012-02-26 00:57:44