verificar validar isnullorwhitespace example empty c# nullable

isnullorwhitespace - validar null en c#



C#error nullable de cadena (5)

private string? typeOfContract { get { return (string?)ViewState["typeOfContract"]; } set { ViewState["typeOfContract"] = value; } }

Más adelante en el código lo uso así:

typeOfContract = Request.QueryString["type"];

Recibo el siguiente error en la declaración de la línea typeOfContract que indica:

El tipo ''cadena'' debe ser un tipo de valor que no admite nulos para usarlo como parámetro ''T'' en el tipo genérico o método ''System.Nullable <T>''

¿Algunas ideas? Básicamente, quiero asegurarme de que "type" exista en QueryString antes de realizar una acción.


Lo estás complicando. string ya puede contener nulos. No es necesario que sea más anulable. Sacar el ? en el tipo de propiedad.



String es un tipo de referencia, por lo que no necesita (y no puede) usar Nullable<T> aquí. Simplemente declare typeOfContract como una cadena y simplemente busque null después de obtenerlo de la cadena de consulta. O use String.IsNullOrEmpty si desea manejar valores de cadenas vacías igual que null.


System.String es un tipo de referencia y ya es "anulable".

Nullable <T> y el? sufijo son para tipos de valor como Int32, Double, DateTime, etc.


cadena no puede ser el parámetro Nullable porque cadena no es un tipo de valor. String es un tipo de referencia.

string s = null;

es una declaración muy válida y no es necesario hacerla nulable.

private string typeOfContract { get { return ViewState["typeOfContract"] as string; } set { ViewState["typeOfContract"] = value; } }

debería funcionar debido a la palabra clave as .