接口实现问题 疑惑

huanhuan30 2014-10-22 09:17:19


ITutorialForm 接口

public interface ITutorialForm
{
bool AllowDemoFilter { get; }
bool IsDemoFilterVisible { get; }
bool IsFullMode { get; }

void HideServiceElements();
void ResetNavbarSelectedLink();
void ShowDemoFilter();
void ShowModule(string name);
void ShowServiceElements();



ITutorialForm 的实现类

public class RibbonMainForm : RibbonForm, ITutorialForm, IWhatsThisProvider
{
protected BarCheckItem bciFilter;
protected DefaultLookAndFeel defaultLookAndFeel1;
protected NavBarControl navBarControl1;
protected ApplicationCaption8_1 pnlCaption;
protected RibbonControl ribbonControl1;
protected internal RibbonStatusBar ribbonStatusBar;

public RibbonMainForm();
public RibbonMainForm(string[] arguments);

protected virtual bool AllowDescriptionText { get; }
protected virtual bool AllowMergeStatusBar { get; }
protected virtual bool AllowNavBarFilter { get; }
protected virtual bool AllowSkinProgress { get; }
public ImageShaderBase CurrentShader { get; }
protected virtual int CustomHeight { get; }
protected virtual int CustomWidth { get; }
protected virtual string DemoName { get; }
protected internal BarSubItem ExportToImageExButton { get; }
protected virtual SourceFileType FileType { get; }
protected internal static string GetStartedLink { get; set; }
[DefaultValue(true)]
public bool HintVisible { get; set; }
protected virtual bool IsAllowAboutModule { get; }
public RibbonPage MainPage { get; }
protected BarManager Manager { get; }
protected virtual string NotTranslatedModuleTypes { get; }
public RibbonPageGroup PrintExportGroup { get; }
public RibbonPageGroup ReservGroup1 { get; }
public RibbonPageGroup ReservGroup2 { get; }
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public RibbonControl RibbonControl { get; }
public RibbonMenuManager RibbonMenuManager { get; }
protected virtual bool ShowPanelDescription { get; }
public FormTutorialInfo TutorialInfo { get; }

public void ClearNavBarFilter();
protected virtual void CreateRibbonMenu();
protected virtual RibbonMenuManager CreateRibbonMenuManager();
protected void DisableWhatsThis();
protected override void Dispose(bool disposing);
protected void EnableWhatsThis();
protected virtual void FillNavBar();
public void HideServiceElements(); // <--- 实现
protected virtual void InitBarItemImages();
protected virtual void InitCurrentRibbon();
public void MergeRibbon(RibbonControl childRibbon);
protected virtual void NotifyModuleWhatsThisStateChange(bool whatsThisStarted);
protected virtual void OnLoad(object sender, EventArgs e);
protected virtual void RegisterEnumTitles();
protected virtual void RemoveNavBarItems();
public void ResetNavbarSelectedLink(); // <--- 这里
protected virtual void SetFormParam();
protected virtual void ShowAbout();
public void ShowDemoFilter(); // <--- 这里
public void ShowModule(string name); // <--- 这里
protected virtual void ShowModule(string name, GroupControl group, DefaultLookAndFeel lookAndFeel, ApplicationCaption caption);
protected virtual void ShowModule(string name, GroupControl group, DefaultLookAndFeel lookAndFeel, ApplicationCaption caption, Control notePanel);
public void ShowServiceElements(); // <--- 这里
public void UnMergeRibbon();
}


在看devexpress 一个DEMO,但是看不懂。。。。
我的问题:为什么 ITutorialForm 接口里 三个属性 在RibbonMainForm 这个类里没有实现,然后 几个方法也没有实现,结尾用 “;”,但是明明这个 RibbonMainForm 又不是抽象类或者接口。。
这种写法什么意思
...全文
193 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
smthgdin_020 2014-10-22
  • 打赏
  • 举报
回复
reflector --> RibbonMainForm 看看是否实现了。
Forty2 2014-10-22
  • 打赏
  • 举报
回复
引用 9 楼 huanhuan30 的回复:
[quote=引用 5 楼 Forty2 的回复:] public class RibbonMainForm : RibbonForm, ITutorialForm, IWhatsThisProvider 有可能RibbonForm实现了啊。
没有哦。 ribbonform 木有这些方法[/quote] 另外一种可能是RibbonMainForm显式地实现了ITutorialForm的某些属性/方法。 public class RibbonMainForm : RibbonForm, ITutorialForm { bool ITutorialForm.AllowDemoFilter get { return ...;} } 由于显式接口实现‘类似’于private级别,微软的对象察看器并不显示
huanhuan30 2014-10-22
  • 打赏
  • 举报
回复
引用 5 楼 Forty2 的回复:
public class RibbonMainForm : RibbonForm, ITutorialForm, IWhatsThisProvider 有可能RibbonForm实现了啊。
没有哦。 ribbonform 木有这些方法
huanhuan30 2014-10-22
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
[quote=引用 楼主 huanhuan30 的回复:] 在看devexpress 一个DEMO,但是看不懂。。。。 我的问题:为什么 ITutorialForm 接口里 三个属性 在RibbonMainForm 这个类里没有实现,然后 几个方法也没有实现,结尾用 “;”,但是明明这个 RibbonMainForm 又不是抽象类或者接口。。 这种写法什么意思
你哪来的源代码?你拿到真正的源代码了吗?这种代码你编译运行了吗?[/quote] 安装devexpress 的时候不是 会安装他的demo么,他的demo有源代码。。可以编译运行
zhouzangood 2014-10-22
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
引用 楼主 huanhuan30 的回复:
在看devexpress 一个DEMO,但是看不懂。。。。 我的问题:为什么 ITutorialForm 接口里 三个属性 在RibbonMainForm 这个类里没有实现,然后 几个方法也没有实现,结尾用 “;”,但是明明这个 RibbonMainForm 又不是抽象类或者接口。。 这种写法什么意思
你哪来的源代码?你拿到真正的源代码了吗?这种代码你编译运行了吗?
Forty2 2014-10-22
  • 打赏
  • 举报
回复
public class RibbonMainForm : RibbonForm, ITutorialForm, IWhatsThisProvider 有可能RibbonForm实现了啊。
忘丿殇 2014-10-22
  • 打赏
  • 举报
回复
可能是想让RibbonMainForm当成基类,继承ITutorialForm,使得ITutorialForm属性可以再其派生类中重写。。。
WM_JAWIN 2014-10-22
  • 打赏
  • 举报
回复
这样也能编译通过? 如果编译,那这几个东东应该等效于空函数,什么也不做。
exception92 2014-10-22
  • 打赏
  • 举报
回复
只有一个 get,可能需要你在其它地方设置。
五更琉璃 2014-10-22
  • 打赏
  • 举报
回复
........... 用”Reflector“看吧

110,570

社区成员

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

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

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