两个类通信的问题,在线等

newmankind 2011-04-02 08:47:48
现在遇到一个难题,就是两个类之间要互相主动通信,类似于网中的收包发包,而且是异步的。就是A->B同时B->A.
想了很久,各条路上都遇到了麻烦
1、通过委托方式,A中初始化了B解决了单向主动通信,但是反过来则不行
2、建立了第三方中间类C,A,B中都实例化了C,但是参数传递遇到问题,如何将C的对象c如何通过构造函数传递到AB中,
并赋值给AB中的某个private C 的成员,甚是不解。
请达人指教!!谢谢!!
...全文
156 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
newmankind 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 real_monster 的回复:]

使用静态c ,实例化应该有点问题吧,只能是c来做数据传递? 如果静态c ,a和b能主动拿数据
[/Quote]

不是很理解这句话的意思,我命名的C是纯委托和事件,在实例化是同+=eventHandler方式在A和B中实现。
不知道这样是否存在什么问题?
newmankind 2011-04-02
  • 打赏
  • 举报
回复
谢谢楼上两位!
newmankind 2011-04-02
  • 打赏
  • 举报
回复
我暂时的想法,是A,B互相不知道自己的存在,有一个管道能通过这个管道建立起联系,有点类似TCP/IP的协议
超银 2011-04-02
  • 打赏
  • 举报
回复
使用静态c ,实例化应该有点问题吧,只能是c来做数据传递? 如果静态c ,a和b能主动拿数据
newmankind 2011-04-02
  • 打赏
  • 举报
回复
楼上兄台,惭愧,惭愧,根基很浅,刚刚辞职,所以闲来无事写写程序,非常感谢!
兔子-顾问 2011-04-02
  • 打赏
  • 举报
回复
设计模式多么的重要啊。
观察者模式可以实现广播通知的效果。
如果单纯的是2个类,彼此都提供一个使用对方来创建对象的方式就可以了。
比如,简单的这样做。

public class A
{
public B inner = null;
public A(B other)
{
inner = other;
other.inner = this;
}
public A()//也需要一个无参的
{
}
}

public clBss B
{
public A inner = null;
public B(A other)
{
inner = other;
other.inner = this;
}
public B()//也需要一个无参的
{
}
}

使用

A o1 = new A();
B o2 = new B(o1);

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧