none
Метод public virtual object Clone(); класса System.Delegate. RRS feed

  • Вопрос

  • Доброго времени суток!

    Язык C#.

    Почему метод "Clone" класса"System.Delegate" виртуальный? Кто может переопределить его? Классы  MulticastDelegate и Delegate явно не наследуются. Наследует компилятор при создании типа делегата.


    • Изменено Y_VS 7 ноября 2020 г. 9:56
    7 ноября 2020 г. 9:46

Ответы

  • Его и сгенерированные компилятором типы делегатов не переопределяют. В этом легко убедиться через ILDasm. Но тут следует учесть следующее, метод Clone реализует интерфейс ICloneable, поэтому он всегда внутренне будет виртуальным, даже если бы он не был помечен virtual в коде на C#. Методы интерфейсов всегда вызываются через позднее связывание. Тут скорее надо задать вопрос, зачем вообще делегатам ICloneable...
    9 ноября 2020 г. 10:36