Sto implementando un'interfaccia IDictionary, che ha il parametro object
per il suo get
set
.Utilizzare l'eccezione per la mancata corrispondenza del tipo in C#
object this [object key] { get; set; }
voglio rispettare la chiave per essere il tipo di stringa, quindi nel mio codice che faccio:
(if key.GetType() != typeof(string)) {
//
}
voglio un'eccezione quando questo accada. Tuttavia non so quale sia l'eccezione più appropriata da utilizzare in questo caso. Il più vicino che riesco a trovare è TypeInitializationException e ArgumentException. Tuttavia, è indicato in questo document: "Esegui System.ArgumentException o uno dei suoi sottotipi se gli argomenti non validi vengono passati a un membro", il che mi fa pensare se il mio sia il caso d'uso corretto per questo.
Cosa devo usare il mio caso? Devo usare Assert invece di lanciare Eccezione?
È anche possibile implementare la propria eccezione, se lo si desidera. – tnw
Il codice passerà attraverso un'eccezione di puntatore nullo se lo si passa nullo. Se usi '! (Chiave è una stringa)', otterrai qualunque eccezione tu lanci all'interno di 'if'. – Gabe
Perché non imporre la chiave per essere una stringa nell'argomento tipo? per esempio. IDictionary –