Variables condicionales
Frecuentes
Visto 161 equipos
0
Me estoy perdiendo algo, ¿cómo hago que esto funcione?
var now = DateTime.Now;
string loadStartDate = Request.QueryString["sd"] == String.Empty ? now.AddMonths( -14 ).ToShortDateString();
string loadEndDate = Request.QueryString[ "ed" ] == String.Empty ? now.ToShortDateString();
Básicamente, cuando la página se carga si sd y/o ed están en blanco, luego complete la fecha con mis cosas predefinidas.
3 Respuestas
5
estas olvidando un :
y la parte posterior.
El operador condicional tiene tres partes:
- predicado (
Request.QueryString["sd"] == String.Empty
) - rama verdadera
- rama falsa
Te falta la sintaxis y el valor de la rama falsa.
Lo escribiría como:
string loadStartDate = string.IsNullOrWhitespace(Request.QueryString["sd"])
? now.AddMonths( -14 ).ToShortDateString()
: Request.QueryString["sd"];
Nota:
string.IsNullOrWhitespace
es nuevo en .NET 4.0, así que use string.IsNullOrEmpty
para versiones anteriores.
contestado el 03 de mayo de 12 a las 16:05
1
Debería ser como:
string loadStartDate = Request.QueryString["sd"] == String.Empty ? now.AddMonths
( -14 ).ToShortDateString():SOME OTHER VALUE;
contestado el 03 de mayo de 12 a las 16:05
1
La sintaxis del operador condicional es:
condition ? truevalue : falsevalue
Le faltan los dos puntos y el valor para cuando la condición es falsa.
Sí podemos use el operador condicional para esto, pero luego se vuelve un poco repetitivo. Solo haz esto:
DateTime now = DateTime.Now;
string loadStartDate = Request.QueryString["sd"];
if (String.IsNullOrEmpty(loadStartDate)) loadStartDate = now.AddMonths(-14).ToShortDateString();
string loadEndDate = Request.QueryString[ "ed" ];
if (String.IsNullOrEmpty(loadEndDate)) loadEndDate = now.ToShortDateString();
contestado el 03 de mayo de 12 a las 16:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c# asp.net or haz tu propia pregunta.
Sí; y
Request.QueryString[]
regresaránull
(más bien queString.Empty
) si no se presentó ningún valor. - Andrew barbero@p.campbell: de hecho ... aunque si se necesita una cadena, no es necesario hacer un viaje de ida y vuelta. Perdí eso. - Oded
¡Gracias por esto! Me preguntaba qué me estaba perdiendo. Gracias por la explicación a través de. :) - James Wilson
¿Me estoy perdiendo una declaración de uso en la parte superior? Está diciendo que 'cadena' no contiene una definición para 'IsNullOrWhitespace' - James Wilson
@JamesWilson: agregué una nota sobre eso ... Es una adición de .NET 4.0. Usar
string.IsNullOrEmpty
en cambio, si aún no está en 4.0. - Oded