Проверьте следующий код:
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)