【发布时间】:2012-05-19 12:16:11
【问题描述】:
当我尝试运行以下代码时出错。
private sealed class ReqHandler
{
public ReqHandler(object @object, IntPtr method);
public virtual IAsyncResult BeginInvoke(object[] args, AsyncCallback callback, object @object);
public virtual d0 EndInvoke(IAsyncResult result);
public virtual d0 Invoke(object[] args);
}
我得到的错误是。
HB_Auth.AuthImpl.ReqHandler.ReqHandler(object, IntPtr)' 必须有一个主体,因为它没有被标记为抽象、外部或部分 (CS0501) (HB_Auth.Patched)
新的虚拟成员
HB_Auth.AuthImpl.ReqHandler.BeginInvoke(object[], AsyncCallback, object)' is declared in a sealed classHB_Auth.AuthImpl.ReqHandler' (CS0549) (HB_Auth.Patched)
【问题讨论】:
-
C# 不是 C++:在 C# 中,实现进入类声明。
-
两个问题:虚方法还需要实现,密封类不能有虚成员。
-
这看起来不像是一个“基本的 C# 程序”。它不是基本的,不是(有效的)C#,也不是程序。
-
你的错误是编译错误还是警告?您可以使用 pragma 禁用在代码块之前发现烦人的警告,然后再次打开它们。此外,请参阅下面的我的 cmets,了解有关如何移动虚拟成员但保留声明的可能选项。 [MSDN]msdn.microsoft.com/en-us/library/x74w198a.aspx
-
您真正的解决方案是学习一些基本的 C# 教程。我们的用户群无法真正教您如何编写 C#。
标签: c# .net virtual abstract sealed