Использование Nullable в паттернах

Почему a is T b, где T это Nullable<int> можно, а a is Nullable<int> b нельзя?

   class Program
   {
      static T foo<T>(T a, T c) => (a is T b) ? b : c;

      static void Main(string[] args)
      {
         Nullable<int> t1 = foo<Nullable<int>>(123, 456);

         Nullable<int> a = 123;
         Nullable<int> c = 456;
         Nullable<int> t2 = (a is Nullable<int> b) ? b : c; // эта строка не компилируется
      }
   }

Ответы (0 шт):