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