Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top

Вебинар: Инструменты для разработчиков игр и не только - 26.02

menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V3230. Comparison with 'typeof(Nullable<T>)' is meaningless. Calling 'GetType()' on a nullable variable never returns 'Nullable<T>'.

06 Фев 2026

Анализатор обнаружил бессмысленное сравнение результата вызова метода GetType у объекта типа Nullable<T> c typeof(Nullable<T>). Метод GetType для значений типа Nullable<T> всегда возвращает нижележащий тип.

Рассмотрим пример:

public void Foo<T>(Nullable<T> value) where T : struct
{
  if (value.GetType() == typeof(Nullable<int>))
  {
    ....
  }
  ....
}

В данном случае результат сравнения всегда вычисляется как false, т.к. вызов value.GetType() вернёт тип T.

Исправить код можно следующим образом:

public void Foo<T>(Nullable<T> value) where T : struct
{
  if (value.GetType() == typeof(int))
  {
    ....
  }
  ....
}