在C#中用信号通知未实现方法的惯用方法

Luc*_*ore 15 c# idioms

我正在为C#应用程序构建框架,并打算在没有实现的情况下留下一堆方法 - 返回虚拟值.我打算回复他们,但不要忘记忘记实施任何一个.

当我到达未实现的方法时,我想发出信号,并继续使用虚拟值执行.

这样做的惯用方法是什么?

Mar*_*ell 28

这样做的经典方法是:

throw new NotImplementedException();
Run Code Online (Sandbox Code Playgroud)

这对调用者来说很清楚,以后很容易找到修复(事实上,它会在某些任务列表中自动显示).但是,如果这不是一个选项,可能:

return 0; // TODO
Run Code Online (Sandbox Code Playgroud)

再次,这将自动显示在任务列表上,并且很容易找到.

如果你想要更明显的东西:

[Obsolete("not implemented")]
public int Foo() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它将在调用者处显示为编译器警告,或者:

public int Foo() {
    #warning Foo not implemented
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这将在方法中显示为编译器警告.

  • @johnc绝对!但是,它是务实和有效的; p (4认同)
  • 语义是骗人的.真正的程序员擅长使用任何东西,但它们的设计目的是什么;-) (2认同)