Error del compilador CS0403

Actualización: noviembre 2007

Mensaje de error

No se puede convertir null en el parámetro de tipo 'nombre' porque podría ser un tipo que no acepta valores null. Utilice default('T') en su lugar.
Cannot convert null to type parameter 'name' because it could be a non-nullable value type. Consider using default('T') instead.

No se puede asignar null al tipo desconocido indicado porque podría ser un tipo de valor, que no permite la asignación de null. Si la clase genérica no está destinada a aceptar tipos de valores, utilice la restricción de tipo de clase. Si puede aceptar tipos de valor, como los tipos integrados, puede ser conveniente sustituir la asignación a null por la expresión default(T), como se muestra en el siguiente ejemplo.

Ejemplo

El código siguiente genera el error 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
    }
}