Существует ли простой атрибут или контракт данных, который я могу назначить параметру функции, который предотвращает передачу null
в С#/. NET? В идеале это также проверялось во время компиляции, чтобы литер null
не использовался нигде для него и во время выполнения ArgumentNullException
.
В настоящее время я пишу что-то вроде...
if (null == arg)
throw new ArgumentNullException("arg");
... для каждого аргумента, который я ожидаю, не будет null
.
В той же заметке есть противоположность Nullable<>
, в результате чего следующее:
NonNullable<string> s = null; // throw some kind of exception