Что такое полиморфизм времени выполнения и времени компиляции? - PullRequest
5 голосов
/ 28 мая 2011

Может кто-нибудь объяснить мне полиморфизм времени выполнения и полиморфизм времени компиляции относительно C #?

Я нашел похожие вопросы по SO, но они касались C ++.

1 Ответ

3 голосов
/ 28 мая 2011

Вот сайт с хорошим объяснением:

http://www.dickbaldwin.com/csharp/Cs000120.htm

Цитировать статью:

Причина, по которой этот тип полиморфизма часто называют полиморфизмом во время выполнения, заключается в том, что решение о том, какую версию метода выполнять, не может быть принято до времени выполнения. Решение не может быть принято во время компиляции (как в случае с перегруженными методами).

Решение не может быть принято во время компиляции, поскольку у компилятора нет возможности узнать (когда программа компилируется) фактический тип объекта, ссылка на который будет сохранена в ссылочной переменной.

В крайнем случае, например, объект может быть получен во время выполнения из сетевого соединения, о котором компилятор не знает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...