the other option is to declare Method in BaseClass as virtual.
to decide you must first answer the the question, when instance downcast which to call?
say you have the method:
void SomeMethod(BaseClass foo)
{
foo.Method();
}
and you call:
var foo = new DerivedClass();
SomeMethod(foo);
which implementation of Method do you want called? the BaseClass or the DerivedClass Implementation. use new if you want the BaseClass version, use virtual if you want the DerivedClass version