C# в классе ArrayList есть два одноименных метода, возвращающих разные значения. WTF?

217
09 июля 2017, 10:57

Недавно рыскал по object browser'у, и увидел такую картину

Есть два одноименных метода ToArray, один из которых возвращает массив object'ов, а другой экземпляр класса Array. Как такое возможно? Перерыл пол гугла, MDSN говорит, что прегружать методы по возвращаемым значениям нельзя, на всех форумах пишут тоже самое, когда народ спрашивает "а можно ли так?". Но тут же в стандартной библиотеке я вижу такую картину. Подскажите пожалуйста, кто в теме, как это реализованно, потому что я читал, что стандартная библиотека типо не подчиняется правилам, использует функции от WinAPI и т.п.

Answer 1

Напомню, что перегрузка методов позволяет создавать методы с одним и тем же именем, но с разным списком аргументов. Причем возвращаемое значение не учитывается, а отличаться должны именно аргументы методов.

Если посмотреть на метод ToArray, то видно, что один метод не имеет входных параметров, а другой - имеет. Сигнатура поменялась, а, значит, можно сделать вывод, что тут имеет место быть перегрузка.

Так что вполне всё корректно, даже если бы возвращаемое значение второго метода был тоже object[].

READ ALSO
Блокировка сетевых портов

Блокировка сетевых портов

Хочу написать програмулину чтобы блокировала все сетевые порты:) этак вирус для начальникаПусть сидит на одном ftp и без танчиков

213
Убрать проверку путей в реестре

Убрать проверку путей в реестре

Подскажите как сделать проверку без использовать Key != null ?

178
Авторизация на сайте через mail.ru

Авторизация на сайте через mail.ru

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

405