Polymorfismus v jazyku C# striktně zajišťuje, že na instanci odvozené třídy je vždy volána přepsaná (override) implementace virtuální metody. Toto platí nejen například při přetypování dané instance zpět na typ základní třídy, ale i při volání metody základní třídy pomoci reflection.