Gibt es ein einfaches Attribut oder einen Datenvertrag, den ich einem Funktionsparameter zuweisen kann, der verhindert, dass nuller in C # /. NET übergeben wird? Im Idealfall wird dies auch zur Kompilierungszeit überprüft, um sicherzustellen, dass das Literal nullnirgendwo 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