0

如果我有班级 Foo

public class Foo
{
    List<Doo> dooList = new List<Doo>();
}

和班级杜

public class Doo
{
    Foo parent;
}

Doo如果我使用对 parent 的引用来实例化该类的很多实例Foo,那会大大降低计算机的速度吗?这是传递所需变量的廉价方式吗?

编辑:Foo类有大约 20 个变量/属性,Doo类有大约相同的。将有 5 到 30 个类的实例化Foo,每个Foo类大约有 10-20Doo个类。

4

1 回答 1

2

如果 Foo 是引用类型(即类,而不是结构),那么持有对它的引用的成本与持有 int 的成本大致相同。您唯一应该记住的是,只要有对对象的强引用,GC 就不会清除它。

话虽如此,我发现持有循环引用通常是一种不好的做法。(A类持有对B类的引用,B类持有对A类的引用)。我建议尝试通过利用事件来消除对此的需求,或者至少使用接口(Foo 实现接口 IBoo,Doo 持有对 IBoo 而不是 Foo 的引用)。把 Doo 需要调用的方法放在 IBoo 中,不要在 Doo 中暴露整个 Foo 类。

希望这可以帮助 :)

于 2013-09-25T00:41:25.750 回答