Если у меня есть класс как указано ниже:
class MyClass<T,U>
{
public void DoSomething(T t)
{
}
public void DoSomething(U u)
{
}
}
Но создайте его с помощью тех же типов (new MyClass<int,int>()
) Это компилирует прекрасный, но если я пытаюсь звонить DoSomething
это ошибки из-за неоднозначного вызова, который, конечно, корректен. Но что, если метод назвали посредством отражения или некоторого другого динамического пути. Я предполагаю, что это выдало бы исключение во время выполнения. Таким образом, мой вопрос состоит в том, почему компилятор позволяет мне, создают этот класс с теми же типами, если существует неизбежное исключение?