我说过,如果我禁止override/new(Overloads/Shadows)关键字,编译器会生成警告。通常,我设置必要的关键字。如果我禁止“覆盖”会怎么样?
但是如果我忘了它呢?
// >>>> Case A - not virtual property -
class MyPoint : Point
{
int X { get; set; } // vs new int X { get; set; }
}
// >>>> Case B - virtual property -
class Foo
{
virtual int Value { get { return 0; } }
}
class Bar : Foo
{
// vs override/new int Value { get { return 1; } }
int Value { get { return 1; } }
}
换句话说,我总是有2个后备字段,'new'只是同时使用两个字段。 – serhio 2010-02-24 15:39:01