Como retornar un valor nulo para un valueType

24/11/2007 - 18:15 por daniel | Informe spam
Hola tengo una funcion que a un determinada accion correcta retorna un
estructura pero en caso de ue es accion no sea correcta como retornar la
estructura o un valor nulo. En MSDN los valueTypes no pueden se asignados un
valor nulo, asi que nose como retornar un valor nulo en la funcion cuando
esta retorna una estructura, por ejemplo:

struct Datos
{
...
}

Datos datos;

public Datos ObtenerDatos(condicion) // alguna parametro para establecer la
condicion
{
if ( condicion ) // correcta
{
// establecer los datos correspondientes a tipo de valor datos y
return datos;
}
// encaso de que no se cumpla la condicion
return null; // Error, es aqui donde no se que tipo de valor retornar
}

Si alguien me puede ayudar gracias.
 

Leer las respuestas

#1 Alberto Poblacion
25/11/2007 - 10:29 | Informe spam
"daniel" wrote in message
news:
Hola tengo una funcion que a un determinada accion correcta retorna un
estructura pero en caso de ue es accion no sea correcta como retornar la
estructura o un valor nulo. En MSDN los valueTypes no pueden se asignados
un valor nulo, asi que nose como retornar un valor nulo en la funcion
cuando esta retorna una estructura



Si estás usando el Framework versión 2.0 (o superior), tienes un
"Generic" que se denomina Nullable<T> que te permite convertir un ValueType
en un tipo que acepta nulls. El compilador de C# entiende una notación
abreviada para llamar a Nullable<T>, que consiste en agregar una
interrogación detrás del tipo: T?. Sus propiedades Value y HasValue te
permiten extraer el valor y comprobar si lo tiene. Por ejemplo:

struct Datos
{
...
}

Datos? datosDevueltos;
...
datosDevueltos= ObtenerDatos(...);
if (datosDevueltos.HasValue)
{
//Ha vuelto un valor:
Datos datos = datosDevueltos.Value;
}
...
public Datos? ObtenerDatos(condicion)
{
if ( condicion )
{
Datos? datos=new Datos(...); //Se asigna al .Value del Datos?
return datos;
}
return null; //Ahora el Datos? sí que lo admite
}

Preguntas similares