Редактировать: Ой, я все здесь ошибся - вот правильный ответ:
Оператор is
проверяет совместимость типов и , так что ReSharper долженне предупреждать в данном конкретном случае.
Доказательство :
using System;
class Example
{
static void Main()
{
Example example = null;
// this is always "false"
Console.WriteLine(example is Example);
}
}
Дополнительные доказательства:
есть (Справочник по C #) :
Выражение is оценивается как true , если предоставленное выражение ненулевое , и предоставленный объект может быть приведенк предоставленному типу, не вызывая исключения.
Старый ответ: Это неверно, но для полноты я оставлю это здесь.
Да, someObject
здесь все еще может быть null
.
Здесь проверяется только тип переменной :
someObject is MyObjectType
Тип someObject
вполне может быть MyObjectType
, но нигде не может указывать.Другими словами, существует разница между типом ссылки и тем, указывает ли эта ссылка на экземпляр объекта.