Вот два класса с отношением родитель / потомок (взято из Unity3D)
public class GameObject
{
...
public T AddComponent<T>() where T : Component;
...
}
public class Component
{
...
public GameObject gameObject { get; }
...
}
Так как только метод получения является общедоступным, как они могут установить значение поля Component gameObject? (В классе Component нет других методов, которые принимают GameObject)
Я спрашиваю об этом, потому что я использую тот же дизайн и хочу сделать сеттер приватным.
Спасибо