需要的班级设计

时间:2013-10-18 10:06:00

标签: c# .net oop

我有两个班,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的方法,它会导致循环引用吗?这是正确的方法吗?

2 个答案:

答案 0 :(得分:1)

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

因此,例如,如果您需要使用DoSomething()实例B A A,则可以在B类中添加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(); } } } 成员:

{{1}}

答案 1 :(得分:0)

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

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