Приведите, пожалуйста, хотя бы один реальный пример использования модификаторов virtual/override, где модификаторы virtual/ovveride оказываются действительно необходимы, и их нельзя заменить модификатором new.
Предположим, есть 2 класса
public class MyOverrideObject
{
public override string ToString()
{
return "-->Overrided<--";
}
}
public class MyNewObject
{
public new string ToString()
{
return "-->NEW<--";
}
}
И код вывода в консоль
Console.WriteLine("{0}\n{1}", new MyOverrideObject(), new MyNewObject());
Вывод
-->Overrided<--
UserQuery+MyNewObject
Как видно, скрытие метода не сработало, так как консоль не знает о конкретных типах, что в неё отправили и не проверяет этого. По сути везде, где принимающий класс не в курсе точного типа аргумента, скрытие метода работать не будет. Потому использовать его я крайне не рекомендую.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости