Kiedy piszę taki kod, gdzie obj jest zmienną lokalną:
if (obj is IMyInterface)
{
var result = (IMyInterface)obj;
// ....
}
Resharper oferuje zamianę tego kodu w następujący sposób:
var result = obj as IMyInterface;
if (result != null)
{
// ...
}
Wolę ten pierwszy, ponieważ nie oferuje on możliwości przypadkowych wyjątków o zerowym odwołaniu. Jakie są powody, by preferować inną formę?
Dlaczego Resharper to zaleca?