这个问题不太可能帮助任何 future 的访客;它只与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the help center .
8年前关闭。
为什么会这样编译?
public abstract class Thing
{
public abstract void ActualWork()
{
Console.WriteLine("this should be impossible to execute");
}
}
不应该
abstract
方法不允许实现,因为它们以后必然会实现?根据 CodeCamper 的评论,Visual Studio 没有将其标记为错误。对我来说很奇怪,因为它本身并没有锁定,它仍然注意到其他错误,而不是那个错误。
最佳答案
有时,Visual Studio IDE 根本无法注册错误,直到它被刷新(例如通过尝试运行程序)。一个完美的示例采用下面的代码,然后在两个“public”之后手动添加单词 Abstract,它不会立即注册为错误。这只是 Visual Studio 中的一个小故障。
public class Thing
{
public void ActualWork()
{
Console.WriteLine("this should be impossible to execute");
}
}
即使运行程序后它没有显示错误,您也会收到以下错误:
Error 1 ... cannot declare a body because it is marked abstract
为什么会这样编译?它没有。 Visual Studio 和可能许多其他 IDE 在动态注册错误时遇到问题,具体取决于您输入错误的方式。
MSDN (http://msdn.microsoft.com/en-us/library/sf985hc5(v=vs.71).aspx)
Because an abstract method declaration provides no actual implementation, there is no method body; the method declaration simply ends with a semicolon and there are no braces ({ }) following the signature.
关于c# - 为什么在我实现抽象方法时 Visual Studio 不将其标记为错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16930092/