未实现方法或操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未实现方法或操作相关的知识,希望对你有一定的参考价值。
有两种形式。 Form2衍生自Form1。
但是在设计模式下,Form2出现问题,如下面的屏幕快照所示。
如果我对此this._presenter.Retrive();
发表评论,它将正常工作。发生了什么事以及如何解决问题?
UPD:如果我要删除抛出新的NotImplementedException();并且将插入,例如MessageBox.Show(“ Test”);,每次我打开Form2时,MessageBox都会像我在运行该应用程序一样显示。
Form2
namespace InheritanceDemo
public partial class Form2 : Form1
public Form2()
InitializeComponent();
Form1
namespace InheritanceDemo
public partial class Form1 : Form
protected IPresenter _presenter;
public Form1()
InitializeComponent();
_presenter = new Presenters();
private void Form1_Load(object sender, EventArgs e)
this._presenter.Retrive();
public class Presenters : IPresenter
public void Retrive()
throw new NotImplementedException();
public interface IPresenter
void Retrive();
throw new NotImplementedException();
但是还有另一件事要注意。
OP:如果我要删除引发新的NotImplementedException();还会每次打开时都插入例如MessageBox.Show(“ Test”);Form2,将显示MessageBox,就像我运行该应用程序一样
如果您注意到,您将不会在Form1
的设计器中收到此错误。但是由于Form2
继承自Form1
,因此您会收到此错误。
这是因为,当您在设计器中打开表单时,设计器会创建表单的基类的实例以显示您的表单。这意味着不是创建Form2
的实例,而是创建Form1
的实例,运行Form1
构造函数并将其托管在设计图面上,然后反序列化InitializeComponent
的Form2
中的代码并将组件放在设计图。
这就是为什么在设计器中看到Form2
时收到错误,但在设计器中打开Form1
时没有收到任何错误。
解决问题:
- 您可以删除实现,并将实现留空。
[您也可以通过在设计模式下使用
Form_Load
中的DesignMode
属性阻止运行在DesignMode
中的代码来防止错误,>如果(DesignMode)返回;
您可能会发现这些答案有用且有趣:
发生了什么事以及如何解决问题?
Commenting out
以上是关于未实现方法或操作的主要内容,如果未能解决你的问题,请参考以下文章