내가 만약 내가 잘못동일한 어셈블리의 순환 참조가 나쁜 것입니까?
public class ParentClass : IDisposable
{
public ChildClass Child
{
get { return _child; }
}
}
public class ChildClass
{
public ParentClass Parent
{
get { return _parent; }
set { _parent= value; }
}
public ChildClass (ParentClass parent)
{
Parent= parent;
}
}
이 날 수정 같은 어셈블리에 다음과 같은 수업을하지만,이 나쁜 디자인입니다 가정합니다. 이로 인해 나중에 메모리 누수가 발생하거나 예기치 않은 문제가 발생할 수 있습니까? 분명 가비지 수집기는 such kind of circular references을 처리 할 수 있습니다.
편집
어떤 두 클래스가 다른 클래스에서 다음과 같이 사용 치울 경우?
ParentClass objP = new ParentClass();
ChildClass objC =new ChildClass(objP);
objP.Child = objC;
생각하시기 바랍니다 ....
(예를 들어' ProductGroup' 클래스와 'ParentProductGroup' 속성), 이것은 내 의견으로는 완전히 유효합니다. –
mmm .. "나쁘다"는게 뭔지 모르겠다. 이것은 이중 연결리스트의 정의이다. GC는 그것을 처리한다 ... – gbianchi
O/RM 툴은 항상 이와 같은 코드를 생성한다. – Steven