Question

Je suis terriblement fatigué de vérifier tous mes arguments pour null et de lancer ArgumenutNullExceptions quand ils le sont.

Si je comprends bien, le C # 4.0 permet certaines constructions concept par contrat. Sera-t-il possible d'indiquer qu'une méthode n'acceptera pas les arguments nuls en C # 4.0?

Aussi, y a-t-il quelque chose que je puisse faire entre-temps (peut-être un attribut?) pour éviter cette tâche monotone de vérification de null et de projection?

Était-ce utile?

La solution

Vous pouvez créer une NotNull<T> classe générique qui aide, mais il existe certains effets secondaires. Voir l'article de blog de Robert Nystrom .

Autres conseils

Rick Brewster décrit une bonne solution pour la vérification concise de paramètres de style déclaratifs dans cet article,

http: // blog.getpaint.net/2008/12/06/a-fluent-approach-to-c-parameter-validation/

Évite l’utilisation de la réflexion (inconvénient de DbC) et ne crée pas de surcharge pour le chemin de code non exceptionnel.

Comme il utilise des méthodes d'extension pour autoriser ce qui semble être des appels de méthode d'instance sur des objets null. Un peu malin de codage IMO.

Si vous êtes vendu sur DBC, Google Spec # et PostSharp.

Je ne suis pas sûr des constructions DbC natives en C # 4.0, mais Microsoft va publier plusieurs langues Contrats bibliothèque.
Vous pouvez télécharger la version de MSVS2008 ici .

En guise d'alternative aux réponses déjà données, il vaut la peine de chercher dans Null Object design pattern.

L’essence de ce modèle de conception est qu’une fois le " objet null " est créé, il n’est plus nécessaire de rechercher null et les méthodes de l’objet null implémentent le comportement souhaité chaque fois qu’un null (sinon) aurait été passé par rapport à une référence à un " objet réel ".

Ce modèle de conception ne dépend pas de C # 4.0 et peut en fait être facilement implémenté dans presque tous les langages de programmation OO .

Je viens de commencer à utiliser Code Contracts. C’est une nouvelle fonctionnalité de C # 4.0. Vous devez télécharger un complément depuis MS pour vous permettre de le visualiser dans les paramètres de votre projet. Détails ici - & Gt; http://research.microsoft.com/en-us/projects/contracts/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top