I noticed that when overriding virtual methods in C# using Visual Studio, the IDE automatically adds the base.Method() call. On the other hand, when overriding abstract methods, the IDE automatically adds a NotImplementedException().
Why does VS automatically adds the base.Method() call when overriding virtual methods? Is it best practice to call the base method?
That depends if you still need the base behaviour to occur. This decision would be made on a case by case basis. There’s no hard and fast rule, although some patterns would expect a call to the base method (correct implementation of the IDisposable pattern works this way)