Esiste un semplice attributo o contratto dati che posso assegnare a un parametro di funzione che impedisce il nullpassaggio in C # /. NET? Idealmente, questo controllerebbe anche in fase di compilazione per assicurarsi che il letterale nullnon venga utilizzato da nessuna parte per esso e al momento dell'esecuzione ArgumentNullException.
Attualmente scrivo qualcosa come ...
if (null == arg)
throw new ArgumentNullException("arg");
... per ogni argomento che mi aspetto non sia null.
Sulla stessa nota, c'è un contrario a Nullable<>cui quanto segue fallirebbe:
NonNullable<string> s = null; // throw some kind of exception