我的应用程序由一对具有父/子关系的类组成,子类有一个父对象成员,父类有一个子对象成员列表(对于下面的简化示例,我只使用单个对象)。这些类的信息是从数据库中获取的,同时获取各自的父/子对象。当获取父对象导致它获取其子对象时,这将成为一个问题,导致所有子对象都获取其父对象,从而导致......好吧,你明白了。
为了阻止这个循环,我在获取对象的方法中为任何相关对象使用了可选参数。当其中一个对象想要获取其相对对象时分配此参数。我想知道是否可以检查下面示例中的“父”或“子”是否引用了某些东西,尽管引用的对象是 NULL。我认为这适用于 C++ 中的指针,但据我所知,C# 是无指针的。:(
class ParentClass
{
ChildClass _child;
public ParentClass(ChildClass child)
{
_child = child;
}
}
class ChildClass
{
ParentClass _parent;
public ChildClass(ParentClass parent)
{
_parent = parent;
}
}
public static class ItemGetter
{
public static ChildClass GetChild(ParentClass parent = null)
{
ChildClass c = null;
// Here I want to check if 'parent' is referencing anything, regardless of null value.
ParentClass p = parent ?? GetParent(c);
c = new ChildClass(p);
return c;
}
public static ParentClass GetParent(ChildClass child = null)
{
ParentClass p = null;
// Here I want to check if 'child' is referencing anything, regardless of null value.
ChildClass c = child ?? GetChild(p);
// References to itself as being the parent.
p = new ParentClass(c);
return p;
}
}