应该使用基本关键字吗?

Dav*_*veB 3 .net c#

从派生类调用基类的方法时,是否应该使用'base'关键字?似乎使用base关键字会增加代码的可读性,但对我来说,到目前为止,当我排除它时,对代码编译和执行没有任何影响.

Ste*_*ger 13

重写方法时,base关键字很重要:

override void Foo()
{
  base.Foo();
  // other stuff
}
Run Code Online (Sandbox Code Playgroud)

我从来没有用它做任何其他事情.

  • 如果您的班级中有一个"新"方法,名称相同,也可能需要. (2认同)

Gre*_*ech 9

你不应该使用base除非你特别指的是"即使这个类中有一个方法覆盖了基本实现,我想调用基类实现并忽略这个类上的那个".

使用base绕过虚拟调度机制,这种机制在多态性中非常重要,因为它会导致发出call指令而不是callvirt.

所以说句base.Foo()在语义上非常非常不同this.Foo().你几乎总是想要后者.