如果我问一些愚蠢的东西,我很抱歉,但我完全是C#和ASP.NET的新手.我的代码中有错误,我不明白.我正在使用Visual Studio 2008.
在这行代码中:
public class SQLFAQProvider : DBFAQProvider
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Moby.Commerce.DataAccess.FAQ.SQLFAQProvider不实现继承的抽象成员Moby.Commerce.DataAccess.FAQDBFAQProvider.DeleteFAQbyID(int)
当我转到DBFAQProvider错误是在这行代码中:
public abstract DBFAQ DeleteFAQbyID(int fAQID);
Run Code Online (Sandbox Code Playgroud)
我该怎么改变来纠正它?
Qui*_*son 22
首先想到的是在继承的类ala中实现抽象成员:
public class SQLFAQProvider : DBFAQProvider
{
public override DBFAQ DeleteFAQbyID(int fAQID)
{
//TODO: Real Code
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 22
DeleteFAQbyID在派生类中实现该方法:
public override DBFAQ DeleteFAQbyID(int fAQID)
{
// Put your code here
}
Run Code Online (Sandbox Code Playgroud)
抽象方法的要点是(在抽象基类中),"我想确保这个方法在从我派生的每个具体类中都可用" - 由你来提供实现.这有点像界面中的方法.
Chr*_*ore 11
您的子类需要显式实现该特定方法.
如果您不知道该怎么做,那至少应该:
public override DBFAQ DeleteFAQbyID(int fAQID)
{
throw new NotImplementedException("This isn't done yet");
}
Run Code Online (Sandbox Code Playgroud)
当您从C#中的类继承时,abstract除非您的类本身被标记为,否则您需要实现标记为的所有方法abstract.抽象类是无法在运行时直接实例化的类,因为它们没有完全实现基类所必须存在的所有必需方法.
抽象方法是一种机制,允许类指示特定方法必须"最终"存在 - 而不必在此时提供实现.当您不能或不想指定特定实现应该执行的操作时,通常使用抽象类,但是您需要预先定义最终将依赖的方法.
要解决您的问题,请将您的类标记为抽象(期望另一级继承将填充缺失的部分)或在您的类中实现DeleteFAQbyId():
public DBFAQ DeleteFAQbyID(int fAQID)
{
// write appropriate implementation here or:
throw new NotImplementedException();
// or possibly NotSupportedException() if the operation should can't ever be supported.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60399 次 |
| 最近记录: |