You will probably never really need to do this, but if it happens, here is how it can be accomplished.
So, assume you have two classes Base and Derived. The Base class introduces a virtual method named Test. The Derived class overrides this method.
Now, as I said in very rare circumstances, you may need to derive another class from the Derived class and in the overridden method Test call original version of Test method. By original I mean implementation provided by the Base class.
C# and VB.Net, the most popular .Net languages do not provide any way to write something similar to:
class DerivedFromDerived : Derived
public override void Test()
When you call a base class version of Test() C# compiler generates:
.method public hidebysig virtual instance void Test() cil managed
L_0002: call instance void Derived::Test()
The goal is to make compiler generate:
The syntax of method name used in IL reminded me that C++ always allowed invoking an implementation of the very base class. And indeed, the straightforward solution is to implement it in C++/CLI:
public ref class DerivedFromDerived: public Derived
virtual void Test() override
This C++ code generates verifiable safe IL code.