My question is theory based. We all know that the keyword virtual is used to modify a method, property, indexer, or event declaration and allow for it to be overridden in a derived class. We all know its functionality.
What i want to know is that when we write the word virtual what happens at the backhand in the memory that make the compiler to use the required function out of two same functions? What really happens due to which only one would function will be called out of two same named functions at the backhand? I want to know about that.