Wenn ich Code wie diesen schreibe, ist obj eine lokale Variable:
if (obj is IMyInterface)
{
var result = (IMyInterface)obj;
// ....
}
Resharper bietet an, den Code folgendermaßen zu ändern:
var result = obj as IMyInterface;
if (result != null)
{
// ...
}
Ich bevorzuge das erstere, da es keine Möglichkeit für versehentliche Nullreferenzausnahmen bietet. Welche Gründe sprechen dafür, die andere Form zu bevorzugen?
Warum empfiehlt Resharper dies?