Визуализация - это защищенный метод, означающий, что только производные классы могут получить к нему доступ. Он вызывается в жизненном цикле событий и не должен явно вызываться в вашем коде.
RenderControl - это публичный метод, который позволяет вам вызывать метод Render, когда вы хотите. Вы можете использовать его, скажем, в пользовательском элементе управления, где вы храните элементы управления в ControlsCollection, но хотите визуализировать их в отдельной ячейке таблицы. Например:
writer.Write(""):
foreach(Control ctl in Controls)
{
writer.Write("")
ctl.RenderControl(writer);
writer.Write("");
}
writer.Write("");
Вы должны всегда переопределять Render, а не RenderControl, как он вызывается в жизненном цикле событий (как я уже сказал)
(из http://forums.asp.net/t/909220.aspx/1, извините, мой ответ - всего лишь копирование и вставка, но я не видел особого смысла переписывать такое кристально чистое объяснение)
Я до сих пор не понимаю, почему MS просто не сделала Render () публичным методом. Зачем нужен отдельный RenderControl ()? Причина этого отсутствует во всех ответах, данных до сих пор. Первый человек, который может это объяснить, получает блестящий голос.