什么是无操作课程?

时间:2011-04-05 18:30:15

标签: c# abstract

我刚刚在this answer中了解了关于确保基类中的方法总是被子类调用的问题的模板方法模式。

部分答案讨论了基类与无操作类:

  

(关于是否成功的决定   无操作或抽象通常是公平的   很明显 - 基类是否成功   独立感,具体而言   类?)

什么是无操作课?

2 个答案:

答案 0 :(得分:12)

class 不是no-op,而是该方法的实现。

答案讨论了在基类抽象中使用该方法的决定(从而强制派生类来实现它,即使他们希望它完全没有任何东西),而不是将其实现为“ no-op“(即使用空方法体)。

如果什么都不做是一个合理的默认值,那么基类可能会将此方法实现为无操作,这样派生类只有在实际需要发生不同的事情时才会被覆盖。

如果什么都不做是不明智的,那么这个方法就是抽象的。

答案 1 :(得分:6)

no-opno-operation的缩写,也就是说,什么都不做的方法:

public void MyNoOp()
{
}

或者来自链接的问题:

public override void Update()
{
    //no-op, does nothing
}