繁体   English   中英

C#父子财产保护

[英]c# parent-child property protection

这是两个具有父/子关系的类(摘自Unity3D)

public class GameObject
{
    ...
    public T AddComponent<T>() where T : Component;
    ...
}

public class Component
{
    ...
    public GameObject gameObject { get; }
    ...
}

由于只有getter是公开的,因此他们如何实现设置Component gameObject字段的值? (在使用GameObject的Component类中没有其他方法)

我之所以这样问,是因为我使用的是同一类型的设计,并且想将设置器设为私有。

谢谢

它可能有一个internal设置器,或者可能是将GameObject传递给了构造函数并在那里设置了? 或者它可以使用反射直接设置字段(或调用其他方式不可用的访问器),但我对此表示怀疑。

将组件添加到GameObject时,很可能是一个内部设置器,用于分配组件的parent(GameObject)。 因此,在这种情况下,设置组件GameObject的唯一方法是将组件添加到GameObject。

您可以将其与winForms进行比较,如果您将子控件添加到父控件的控件集合中,则会为您设置子控件的父控件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM