event 的继承问题
dyhml 2006-10-19 01:57:28 event 的继承问题
abstract class DataProvider {
public delegate void DataHandler(DataProvider src,byte[] data);
public event DataHandler processData;
}
class ChildDataProvider : DataProvider {
private void run(){
while(true){
.....
byte[] data=....
processData(this, data);
}
}
}
出错,processData 只能在 DataProvider 中调用,不能在子类中调用,
可以去掉 processData 的 event ,但这里我希望还是用 event 。
想要实现的是
//用工厂方法返回子类
DataProvider pro=DataProviderFactory(ChildDataProvider);
pro.processData+=new delegate .........
event 的 processData 用于限制它只能在 DataProvider 及其子类中调用,外面只能注册,取消注册。