Я пытаюсь вызвать перегруженный метод, используя отражение.
public void SomeMethod(string param)
{
param = param.Length > 0 ? param : null;
Type thisType = this.GetType();
MethodInfo theMethod = thisType.GetMethod("methodName", BindingFlags.NonPublic | BindingFlags.Instance);
theMethod.Invoke(this, param);
}
Когда я использую один из обоих методов, все работает хорошо:
//works well if param = "" (null)
private void methodName(){
}
//works well if param = "anystring"
private void methodName(string parameter){
}
Я могу использовать только один из этих методов. Но когда я использую оба метода в классе (мне нужно использовать оба случая - когда параметр будет передан и без него), я получаю исключение:
AmbiguousMatchException: найдено неоднозначное совпадение
Как использовать оба перегруженных метода?