基础知识忘完了,弱弱的疑问,关于接口,大家别见笑~

zhouyinhui 2007-12-07 02:49:39
我的类去实现另一个接口,似乎必须把该接口中的方法修饰为Public,否则编译不过.但我的用Reflector反编译.NET3.0中 ContentControl类时,发现它实现了IAddChild接口,但其将该接口中的AddText 与 AddChild方法实现成了 protected virtual void AddChild(object value);与 protected virtual void AddText(string text);为什么它可以使用Protected来修饰这两个方法呢?

下面是反编译后的代码(无关部分省略...)
public interface IAddChild
{
// Methods
void AddChild(object value);
void AddText(string text);
}

[DefaultProperty("Content"), ContentProperty("Content"), Localizability(LocalizationCategory.None, Readability=Readability.Unreadable)]
public class ContentControl : Control, IAddChild
{

// Methods
protected virtual void AddChild(object value);
protected virtual void AddText(string text);

// something else

}




...全文
97 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouyinhui 2007-12-07
  • 打赏
  • 举报
回复
@DemonXHunter
Thank you. 的确如此,我验证了...
VirtualDesktop 2007-12-07
  • 打赏
  • 举报
回复
是啊,他可能有个显示的实现的
DemonXHunter 2007-12-07
  • 打赏
  • 举报
回复
有可能他还有一个显示的实现,比如下面的代码是可以编译通过的

internal interface ITest
{
void Test();
}

class B : ITest
{

protected virtual void Test()
{
throw new Exception("The method or operation is not implemented.");
}


#region ITest Members

void ITest.Test()
{
Test();
}

#endregion
}

zhnzzy 2007-12-07
  • 打赏
  • 举报
回复
sf

111,098

社区成员

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

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

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