Использование 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; // эта строка не компилируется
}
}