请问在C#里面,委托是否可以用多态
就是说,如果B,C是A的派生类,A有个纯虚拟方法f
B和C都重写了f,现在定义一个委托w,其形式是f,
再各定义一个B和C的对象b1,c1
定义一个A的引用a1
a1=b1;//将a1指向b1
再将a1.f加到w上
现在用调用w,那w是否会自动调用b1的f方法
根据微软的文档说明是这样的:
<对于实例方法,委托对象同时封装一个实例和该实例上的一个方法。如果您有一个委托对象和一组适当的参数,则可以用这些参数调用该委托。>
如果是这样的话,那应该是可以的,但不知道在委托封装的时候是否会截取掉派生类特有的东西,所以请高手回答一下
就是说,如果B,C是A的派生类,A有个纯虚拟方法f
B和C都重写了f,现在定义一个委托w,其形式是f,
再各定义一个B和C的对象b1,c1
定义一个A的引用a1
a1=b1;//将a1指向b1
再将a1.f加到w上
现在用调用w,那w是否会自动调用b1的f方法
根据微软的文档说明是这样的:
<对于实例方法,委托对象同时封装一个实例和该实例上的一个方法。如果您有一个委托对象和一组适当的参数,则可以用这些参数调用该委托。>
如果是这样的话,那应该是可以的,但不知道在委托封装的时候是否会截取掉派生类特有的东西,所以请高手回答一下
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货