Я реализую интерфейс IDictionary, который имеет параметр object
для своего get
set
.Использовать исключение для несоответствия типов в C#
object this [object key] { get; set; }
Я хочу, чтобы принудить ключ быть тип строки, так что в моем коде я:
(if key.GetType() != typeof(string)) {
//
}
Я хочу бросить исключение, когда это произойдет. Однако я не знаю, какое наиболее подходящее исключение использовать в этом случае. Самый близкий, который я могу найти, это ТипInitializationException и ArgumentException. Однако в этом объявлении document указано: «Do throw System.ArgumentException или один из его подтипов, если плохие аргументы передаются члену», что заставляет меня задаться вопросом, является ли мой подходящий вариант использования для него.
Что я должен использовать в своем случае? Должен ли я использовать Assert вместо того, чтобы выбрасывать исключение?
Вы также можете реализовать свое собственное исключение, если хотите. – tnw
Ваш код будет через исключение нулевого указателя, если вы передадите его null. Если вы используете '! (Key is string)', вы получите любое исключение, которое вы выбрали внутри 'if'. – Gabe
Почему не следует вводить ключ в строку в аргументе типа? например IDictionary –