オブジェクトサイズに関して、公開されたプロパティが状態を表さず、単にそのゲッターとセッターの呼び出しを別のエンティティに委任する場合、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プロパティとの違いはありません。この仮定は正しいですか?