«Обнаружено неоднозначное совпадение» при динамическом выбрасывании «System.ArgumentException» ⇐ C#
-
Гость
«Обнаружено неоднозначное совпадение» при динамическом выбрасывании «System.ArgumentException»
Рассмотрим эту функцию:
static void Throw(строковое сообщение), где T: Exception { throw (T)Activator.CreateInstance(typeof(T), message, (Exception)null); } При типе T System.ArgumentException, как сказано в заголовке вопроса, я получаю ошибку времени выполнения «Найдено неоднозначное совпадение». Если посмотреть документацию по ArgumentException, то можно увидеть следующие общедоступные конструкторы:
ArgumentException() ArgumentException(строка) ArgumentException (SerializationInfo, StreamingContext) ArgumentException(строка, Исключение) ArgumentException(строка, строка) ArgumentException(строка, строка, исключение) Учитывая, что я передаю 2 аргумента в CreateInstance и заставляю null быть нулевым Exception, я изо всех сил пытаюсь понять, почему он не соответствует четвертому конструктору в приведенном выше списке?
Рассмотрим эту функцию:
static void Throw(строковое сообщение), где T: Exception { throw (T)Activator.CreateInstance(typeof(T), message, (Exception)null); } При типе T System.ArgumentException, как сказано в заголовке вопроса, я получаю ошибку времени выполнения «Найдено неоднозначное совпадение». Если посмотреть документацию по ArgumentException, то можно увидеть следующие общедоступные конструкторы:
ArgumentException() ArgumentException(строка) ArgumentException (SerializationInfo, StreamingContext) ArgumentException(строка, Исключение) ArgumentException(строка, строка) ArgumentException(строка, строка, исключение) Учитывая, что я передаю 2 аргумента в CreateInstance и заставляю null быть нулевым Exception, я изо всех сил пытаюсь понять, почему он не соответствует четвертому конструктору в приведенном выше списке?
Мобильная версия