Я новичок в Stack Overflow, поэтому, пожалуйста, не беспокойтесь! Я углубленно читаю C #, но натолкнулся на сценарий, который, как мне кажется, не описан. Быстрый поиск в сети тоже не дал никаких результатов.
Допустим, я определяю следующие перегруженные методы:
void AreEqual<T>(T expected, T actual)
void AreEqual(object expected, object actual)
Если я вызываю AreEqual ()
без указания аргумента типа:
AreEqual("Hello", "Hello")
Вызывается универсальная или неуниверсальная версия метода? Вызывается ли универсальный метод с выводимым аргументом типа или неуниверсальный метод вызывается с неявным приведением аргументов метода к System.Object
?
Надеюсь, мой вопрос ясен. Спасибо заранее за любые советы.