J'ai remarqué que Resharper me suggère de transformer ceci:
if (myObj.myProp is MyType)
{
...
}
dans ce:
var myObjRef = myObj.myProp as MyType;
if (myObjRef != null)
{
...
}
Pourquoi serait-il suggérer ce changement? Je suis habitué à Resharper ce qui suggère l'optimisation des changements de code et de réduction des changements, mais il se sent comme il veut prendre ma seule déclaration et le transformer en un deux-liner.
Selon MSDN:
Une est l'expression renvoie la valeur true si les deux conditions suivantes sont remplies:
l'expression n'est pas nulle. l'expression peut être converti en type. C'est, une fonte d'expression de la forme
(type)(expression)
sera complète sans lancer une exception.
Suis-je une erreur de lecture, ou n'a pas d' is
faire exactement les mêmes vérifications, juste dans une seule ligne, sans avoir besoin de créer explicitement une autre variable locale pour les nuls?