Наследование в .NET работает только на базе экземпляров.Статические методы определяются на уровне типа, а не на уровне экземпляра.Вот почему переопределение не работает со статическими методами / свойствами / событиями ...
Статические методы хранятся в памяти только один раз.Для них не существует виртуальной таблицы и т. Д.
Если вы вызываете метод экземпляра в .NET, вы всегда указываете ему текущий экземпляр.Это скрыто во время выполнения .NET, но это происходит.Каждый метод экземпляра имеет в качестве первого аргумента указатель (ссылку) на объект, на котором выполняется метод.Этого не происходит со статическими методами (так как они определены на уровне типа).Как компилятор должен выбрать метод для вызова?
(littleguru)