Existe-t-il un attribut simple ou un contrat de données que je peux attribuer à un paramètre de fonction qui empêche nulld'être passé en C # /. NET? Idéalement, cela vérifierait également au moment de la compilation pour s'assurer que le littéral nulln'est utilisé nulle part pour lui et au moment de l'exécution ArgumentNullException.
Actuellement, j'écris quelque chose comme ...
if (null == arg)
throw new ArgumentNullException("arg");
... pour chaque argument que j'espère ne pas être null.
Sur la même note, y a-t-il un contraire à celui Nullable<>par lequel ce qui suit échouerait:
NonNullable<string> s = null; // throw some kind of exception