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

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

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

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

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

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

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