Ошибка компилятора CS0403
Обновлен: Ноябрь 2007
Сообщение об ошибке
Невозможно преобразовать значение NULL в параметр типа "имя", так как это не допускающий тип значения NULL. Рассмотрите возможность использования (T) по умолчанию.
Cannot convert null to type parameter 'name' because it could be a non-nullable value type. Consider using default('T') instead.
Нельзя присвоить значение 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
}
}