在C#中的3个类之间创建类实例

时间:2013-08-08 20:13:09

标签: c# wpf class oop multiple-inheritance

我有三个类,我们称之为A,B和C.现在考虑以下代码:

public class A{
  A(){}
  methodOfA(){}
}

public class B{
  A a = new A();
}

public class C{
  //Here i want to access a.methodOfA() without creating a new instance of the class A.
  //I want to achieve this only using the instance 'a' created in class B
}

这件事有可能吗?如果没有,请让我知道解决方案。我的应用程序限制我在C类中创建A的新实例。这是因为我正在使用WPF在C#中构建音乐播放器应用程序。

B类是我的mainwindow.cs,它一直运行直到应用程序退出。 A类包含所有方法,如play(),pause()等。 B类调用C类中的方法(在按钮单击事件上),而后者又必须使用在B中创建的相同实例调用类A中的play()方法,因为该实例已在运行并且该函数必须基于在那个例子上。

我已经在C类中继承了外部库。而且C#不支持多重继承。

1 个答案:

答案 0 :(得分:2)

如果您有三个单独的类,可能是因为每个类都在您的对象模型中履行了不同的职责。

如果您需要直接从C访问A,在给定当前设计的情况下,您的对象模型可能存在缺陷。

你可以通过让B负责代表B的消费者在A中调用该功能来解决这个问题。为此,在B中创建一个在A上调用适当方法的包装器方法。

您提到C#不支持多重继承。这是事实,但它确实允许您在单个类中实现多个接口。根据您真实问题的具体细节,这可能是一个合适的选择。