首页 新闻 会员 周边

奇怪的问题,实现一个接口,但是可以将接口的方法定义成了Protected!

0
悬赏园豆:10 [已关闭问题]

今天要在处理一个问题的时候,查看了一个类的源码,发现其实现了ICallbackEventHandler接口,但是它的方法声明中确是Protected的,很是奇怪,而我发现如果实现一个接口的时候,将接口中的方法声明为Protected是不能编译的.反编的源码原型:

public abstract class ASPxWebControl : ICallbackEventHandler

......省略其它定义

protected virtual string GetCallbackResult();

 protected virtual void RaiseCallbackEvent(string eventArgument);

吴东雷的主页 吴东雷 | 初学一级 | 园豆:104
提问于:2008-11-01 13:31
< >
分享
其他回答(2)
0
G yc {Son of VB.NET} | 园豆:2006 (老鸟四级) | 2008-11-01 13:47
0

不光是接口的问题,这个虚拟方法没有实现内容也是编译不过去的。

除非将 virtual 换成 abstract

protected virtual string GetCallbackResult();

严重怀疑这个代码是否可以编译通过。

或者你这个代码不是C#的语法,是不是C++的?C++好像允许这样写。

eaglet | 园豆:17139 (专家六级) | 2008-11-01 17:07
0

我记得是protected abstract可以重写成public virtual,但是反着来是不行的,编译通过了?具体这个类在哪里?我也反编译一下

Gray Zhang | 园豆:17610 (专家六级) | 2008-11-01 17:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册