非抽象方法必须具有实现。
在 C# 中,属于类的方法/函数必须具有“主体”或实现。 编译器需要知道调用这些方法时应发生的情况,以便它知道要执行哪些操作。 编译器无法接受没有主体的方法,因为它希望避免混淆代码的意图。
此规则存在例外情况:
将该方法标记为
abstract
抽象方法
时
将该方法标记为
extern
外部方法
时
将该方法标记为
partial
部分方法
时
下面的示例生成 CS0501:
public class MyClass
public void MethodWithNoBody(); // CS0501 declared but not defined
这可以通过声明主体(通过添加括号)来解决:
public class MyClass
public void MethodWithNoBody() { }; // No error; compiler now interprets as an empty method
或者,使用适当的关键字,例如定义 abstract
方法:
abstract class MyClass // class is abstract; classes that inherit from it will have to deifne MyAbstractMethod
public abstract void MyAbstractMethod(); // Compiler now knows that this method must be deinfed by inheriting classes.