就对象大小而言,如果公开的属性不代表状态而只是将其 getter 和 setter 调用委托给另一个实体,那么属性如何代替 Get/Set 方法影响对象大小?
例如,考虑以下类:
public class Person
{
Address _address = new Address();
public string AddressName
{
get{ return _address.Name; }
set { _address.Name = value; }
}
public string GetAddressName(){ return _address.Name; }
public void SetAddressName(string name){ _address.Name = name; }
}
public Address
{
public string Name { get; set; }
}
我猜当创建一个新的 Person 时,CLR 在确定要分配多少内存时会考虑 AddressName 属性的潜在大小。但是,如果我公开的只是 Get/Set AddressName 方法,则不会分配额外的内存来满足 AddressName 属性。因此,为了节省内存占用,在这种情况下最好使用 Get/Set 方法。但是,这不会对 Address 类的 Name 属性产生影响,因为正在保留状态。这个假设正确吗?