私のアプリケーションは、子クラスに 1 つの親オブジェクト memberがあり、親クラスに子オブジェクト member のリストがあるように、親子関係を持つクラスのペアで構成されています(以下の簡単な例では、単一のオブジェクトのみを使用していますが、 )。これらのクラスの情報はデータベースから取得され、それぞれの親/子オブジェクトが同時に取得されます。これは、親オブジェクトを取得するとその子オブジェクトが取得され、その結果、すべての子オブジェクトが親オブジェクトを取得することになり、その結果、問題が発生します。
このループを防ぐために、オブジェクトをフェッチするメソッド内の関連オブジェクトにオプションのパラメーターを使用しています。このパラメーターは、オブジェクトの 1 つがその相対オブジェクトをフェッチする場合に割り当てられます。参照されているオブジェクトが 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;
}
}