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