NotImplementedException但已在C#中调用该方法

时间:2016-10-07 16:14:30

标签: c# visual-studio notimplementedexception

我想知道,为什么NotImplementedException();即使我很确定我已经调用了这个方法,但仍然会出现?

这是我的dsNBC.xsd设计器中的throw异常:

internal int getLastIDbyMaxPeg()
{
    throw new System.NotImplementedException();
}

这就是我在PegawaiControl.cs中调用名为Control的文件夹中的方法:

public int getNumID()
{
     return Peg.getLastIDbyMaxPeg();
}

public string generateIDPeg()
{
    string id = "PEG";
    return id + Convert.ToString(getNumID() + 1);
}

在边界布局中我只是将generateIDPeg()调用到这样的局部变量中:string idPegw = PC.generateIDPeg();

嗯,getLastIDbyMaxPeg()是我创建的dsNBC.xsd的查询数据集中的方法名称。所以该方法的实际实现代码是数据集中的查询。我在这里消费了如何实现查询作为throw异常中的实际实现? You can see the StackTrace here

你能帮帮我吗?

2 个答案:

答案 0 :(得分:0)

您必须删除该代码并将其替换为您的实际实施 该方法尚未实现(即实际某事,而不是抛出NotImplementedException),仅被调用。

它不会自动删除自己,因为你调用方法,你必须提供实现。

将您的逻辑放在方法内并删除当前行以修复您的情况:

internal int getLastIDbyMaxPeg()
{
    //Do some things
    //return some int value
}

答案 1 :(得分:0)

你确实调用了getLastIDbyMaxPeg()方法,这是你问题的根源。

此异常意味着它所说的内容:在调用之前,您没有实现getLastIDbyMaxPeg()方法。现在所有getLastIDbyMaxPeg都抛出一个NotImplementedException()。 (该例外是一个标准的"占位符"对于需要实施但尚未实施的方法。)

如果您将throw new NotImplementedException()替换为实际实施,则问题将得到解决。