Gibt es ein einfaches Attribut oder einen Datenvertrag, den ich einem Funktionsparameter zuweisen kann, der verhindert, dass null
er in C # /. NET übergeben wird? Im Idealfall wird dies auch zur Kompilierungszeit überprüft, um sicherzustellen, dass das Literal null
nirgendwo dafür verwendet wird, und zur Laufzeit ArgumentNullException
.
Zur Zeit schreibe ich so etwas wie ...
if (null == arg)
throw new ArgumentNullException("arg");
... für jedes Argument, das ich nicht erwarte null
.
In diesem Sinne gibt es ein Gegenteil davon, dass Nullable<>
Folgendes fehlschlagen würde:
NonNullable<string> s = null; // throw some kind of exception