0

我有两个类,A 类和 B 类。A 类有一个方法,它创建 B 类的一个实例并使用该实例调用一个公共方法。

B obj = new B();
obj.DoSomething();

现在 B 类的 DoSomething() 方法有一个循环。

public void DoSomething()
{
    for(int i=1;i<=10;i++)
    {
       //Do some task
       //call a method of class A for this iteration
    }
}

做这个的最好方式是什么?如果我在 DoSomething() 方法中创建类 A 的实例,然后调用类 A 的方法,会导致循环引用吗?这是正确的方法吗?

4

2 回答 2

1

问题是不清楚A是依赖于B还是B依赖于A. 首先,我认为你必须定义这个方面。考虑到这一点,您的课程设计将更加自然和流畅。

因此,例如,如果您需要使用实例,则可以DoSomething()在您的类中放置一个成员:BAAB

public class B
{
    private A _aInstance;

    public B(A aInstance)
    {
        this._aInstance = aInstance;
    }

    public void DoSomething()
    {
        for(int i=1;i<=10;i++)
        {
           //Do some task
           _aInstance.DoSomethingOther();
        }
    }
}
于 2013-10-18T13:43:05.880 回答
0

根据您的程序逻辑,您可以使用this关键字传递对 A 类当前实例的引用。

或者更改程序逻辑,使循环在类 A 中。然后循环将调用类 B 中的方法;之后,A 类中的调用方法调用迭代的适当方法。

于 2013-10-18T10:10:56.623 回答