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

本文关键字:实例 创建 之间 3个 | 更新日期: 2023-09-27 18:27:07

我有三个类,我们称它们为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类是我的主窗口.cs,它一直运行到应用程序退出。类A包含所有方法,如play()、pause()等。类B调用类C中的一个方法(点击按钮事件),而类C又必须使用在B中创建的同一实例调用类a中类似play()的方法,因为该实例已经在运行,并且函数必须基于该实例执行。

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

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

如果您有三个独立的类,那么可能是这样,每个类都在您的对象模型中履行不同的职责。

如果您需要直接从C访问A,考虑到当前的设计,您的对象模型可能存在缺陷。

您可以通过让B负责代表B的消费者在A中调用该功能来解决眼前的问题。要做到这一点,请在B中创建一个包装方法,该方法在A上调用适当的方法。

您提到C#不支持多重继承。的确如此,但它确实允许您在一个类中实现多个接口。这可能是一个合适的选择,取决于你真正问题的确切细节。