@RichK, ты прав. Решарпер не сможет это сделать.
рьте следующий код:
private void Foo(object bar)
{
Type type = bar.GetType();
if (type != null) // Expression is always true
{
}
}
Решарпер утверждаетtype
не будет никогдаnull
, Это очевидно для меня, потому что всегда будет тип дляbar
Но как Решарпер узнает об этом? Как он может знать, что результат метода никогда не будетnull
.
Type
это не структура, так что не может быть так. И если бы метод был написан мной, то возвращаемое значение может бытьnull
(не обязательно GetType, но что-то еще).
Решарпер достаточно умен, чтобы знать, что только для этого конкретного метода результат никогда не будетnull
? (Как будто есть жестко закодированный список известных методов .Net, которые никогда не будут возвращать ноль)