У меня есть одно сомнение относительно перегрузки метода c # и разрешения вызовов.
Предположим, у меня есть следующий код C #:
enum MyEnum { Value1, Value2 }
public void test() {
method(0); // this calls method(MyEnum)
method(1); // this calls method(object)
}
public void method(object o) {
}
public void method(MyEnum e) {
}
Обратите внимание, что я знаю, как заставить это работать, но я хотел бы знать, почему для одного значения int (0) он вызывает один метод, а для другого (1) он вызывает другой. Звучит неловко, поскольку оба значения имеют один и тот же тип (int), но они «связаны» для разных методов.