大家都说汽车是一个类,汽车继承交通工具这个父类,汽车有移动这个功能。
人是一个类,人也有移动这个功能,现在要实现移动这个功能,那么,这个移动的方法是不是要在两个类里实现,还是有什么办法只需在一个地方实现复用,还有的疑问是,如果人、汽车类、或交通工具类都继承了一个移动的接口,那又要在哪实现,
另一个问题:
在作数据传输的时候,会收到各种表示不同意思的数据包,所以我抽象分离出了一个父类:数据包类:F,然后定义了表示CA类数据包、CB类数据包都继承父类F.由于数据传输是用异步通信,所以要建立委托调用回调函数来接收返回的数据包,在不抽象分离出父类的时候,我是按以下的方式建立委托的: public delegate void ResultEvalator(Result _r);但是现在既然把数据包都分离,而且客户端可以根据发送的数据包的格式来确认回收到的一定是CA或CB,那是不是要为各种不同的回发数据包建立不同委托,在发送数据包的时候进行引用不同的委托,还是我的构思有错,正确优雅的做法应该如何。说的通俗和不专业点,我想要的效果就是这个委托可以继承(但委托好像无法继承。)
人是一个类,人也有移动这个功能,现在要实现移动这个功能,那么,这个移动的方法是不是要在两个类里实现,还是有什么办法只需在一个地方实现复用,还有的疑问是,如果人、汽车类、或交通工具类都继承了一个移动的接口,那又要在哪实现,
另一个问题:
在作数据传输的时候,会收到各种表示不同意思的数据包,所以我抽象分离出了一个父类:数据包类:F,然后定义了表示CA类数据包、CB类数据包都继承父类F.由于数据传输是用异步通信,所以要建立委托调用回调函数来接收返回的数据包,在不抽象分离出父类的时候,我是按以下的方式建立委托的: public delegate void ResultEvalator(Result _r);但是现在既然把数据包都分离,而且客户端可以根据发送的数据包的格式来确认回收到的一定是CA或CB,那是不是要为各种不同的回发数据包建立不同委托,在发送数据包的时候进行引用不同的委托,还是我的构思有错,正确优雅的做法应该如何。说的通俗和不专业点,我想要的效果就是这个委托可以继承(但委托好像无法继承。)
解决方案 »
- 用户代码未处理 System.NullReferenceException Message="未将对象引用设置到对象
- list<string []> 集合中的每一项,相同数组的合并
- C# 用StringBuilder生成table,生成的按钮如何来删除行
- C# 怎样将参数传入Click事件中!!!!
- c#串口readline()读取数据时碰到的问题。
- 怎么上穿Excel,并读取资料,急啊~~
- 请大家比较下EXCEL导入到SQL2005中的方法
- 如何判断文件在指定路径的文件夹中是否存在
- 如何实现信用卡支付页面
- 请问程序在后台运行的时候怎么记录键盘输入?
- 资源文件如何打包才能不放到exe里面
- 关于拖拽系统图标的问题
然后人类继承接口实现IMove
然后车类继承接口实现IMove
纯头脑混乱中,请指教!
继承的概念性问题。
实例中可以这么来理解:类A(交通工具)中有一个函数Move(非private定义),B(汽车)继承A之后,B也拥有了Move函数。
接口是对规范的定义,比如说I(移动)中定义了Move接口,那么所有继承I的类都必须遵循I的规范,也就是说都必须有Move这个接口的定义或实现。
第二个问题:
父类中定义一个virtual函数,在构造函数中把它丢给委托,子类重写这个函数
对于这个问题,要具体问题具体分析,
如果有时间建议你看看head first design pattern ,会又有不少的收获的。
在异步数据通信,利用委托,会收到服务端返回的数据包(Result), public delegate void ResultEvalator(Result _r); Send sendObj = new Send("A命令", new ResultEvalator(ReResult));
sendObj.发送();
void ReResult(Result _t)
{
//判断数据格式 -t 调用不同的方法
//或根据发送的A命令 调用不同的方法
}客户端发送不同的指令A,B,服务端会根据A\B的不同,然后返回不同结果的Result,客户端,根据我们发的指令A、B调用相应的方法来处理不同的Result.
=============================
现在我想把不同的Result抽象出一个父类F,然后根据不同的返回结果创建不同的子类ResultCA,ResultCB 而最直接的更改就是我也要继续创建 public delegate void ResultCAEvalator(ResultCA _r);
public delegate void ResultCBEvalator(ResultCB _r); 这我感觉太不合理。。请问接下来我该怎么处理???????谢谢先!
第二个方法是否可以更详细点。
如果有的话,直接调用好了,会自动根据传进来的CA还是CB调用他们的方法的