Прочитать на английском

Поделиться через


Ошибка компилятора CS0403

Невозможно преобразовать null в параметр типа "имя", поскольку он может быть типом значения, не допускающим значения null. Используйте вместо этого default("T").

Нельзя присвоить значение NULL неизвестному типу с именем, так как он может быть типом значения, который не допускает значения NULL. Если предполагается, что универсальный класс не будет принимать типы значений, используйте ограничение типа класса. Если он может принимать типы значений, такие как встроенные типы, то можно попробовать заменить присвоение NULL выражением default(T), как показано в приведенном ниже примере.

Пример

Следующий пример приводит к возникновению ошибки CS0403:

// CS0403.cs  
// compile with: /target:library  
class C<T>  
{  
   public void f()  
   {  
      T t = null;  // CS0403  
      T t2 = default(T);   // OK  
    }  
}  
  
class D<T> where T : class
{  
   public void f()  
   {  
      T t = null;  // OK  
    }  
}