71 votes

Que dois-je faire sur « comparer Possible du type valeur avec ' null ' » ?

Tout en écrivant cette méthode pour une contrainte de NUnit personnalisé.

Resharper prévient que et peut être `` des objets.

 par exemple TExpected est de type DateTime prévu == null ; / / mais DateTime est un struct. 

Quelles sont les règles lorsque l'on compare à un type de valeur null et comment dois-je écrire la méthode pour tenir compte de qui, sans limiter les paramètres génériques en ajoutant une contrainte de classe ?

80voto

Jon Skeet Points 692016

Ne pas modifier le code, il suffit de les ignorer l'avertissement. Si le paramètre type est un non nullable type de la valeur, la comparaison sera toujours voués à l'échec, et ça fait toujours appel ToString() à la place. Je ne sais pas si c'est réellement JITted loin, mais je ne serais pas surpris... et cela ne ressemble pas c'est la performance, le code critique quand même :)

Je serais personnellement de laisser l'avertissement "sur", mais l'ignorer dans ce cas particulier - peut-être avec un commentaire.

Je pense que je suis tombé sur le même avertissement à quelques reprises lors de réimplanter LINQ to Objects.

6voto

Jason Points 125291
<blockquote> <p>Quelles sont les règles lorsque l'on compare à un type de valeur null et comment dois-je écrire la méthode pour tenir compte de qui, sans limiter les paramètres génériques en ajoutant une contrainte de classe ?</p> <p>Si vous ne savez pas qu’ils seront de types référence, vous pouvez alors dire</p><pre><code></code></pre></blockquote>

2voto

Billy Points 42

J’utilise quelque chose comme ça pour vérifier la valeur null sur les types génériques :

-3voto

Massif Points 2427
<pre><code></code><p>Devrait le faire.</p><p><code></code><code></code>par exemple).</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X