У меня есть два класса, один имеет много свойств, а другой - пару. Мне нужно сослаться на некоторые свойства большего класса в меньшем классе, но мне интересно, было бы лучше просто передать значения по отдельности. Пример:
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% меньше.