C sharp - if en una linea * ? * : *

 
Vista:

if en una linea * ? * : *

Publicado por AUGUSTO ESTEBAN (15 intervenciones) el 15/01/2005 05:46:03
porque me sale este error:
(Sólo se pueden utilizar las expresiones de objeto assignment, call, increment, decrement y new como instrucción)
cuando teoricamente lo que esta en el comentario es lo mismo.

bool b;
/*if (checkBox1.Checked==true)
b=true;
else
b=false;
*/
checkBox1.Checked==true ? b=true : b=false;
MessageBox.Show(b.ToString());

ERROR: (Sólo se pueden utilizar las expresiones de objeto assignment, call, increment, decrement y new como instrucción)

Graciasde antemano
se que mis preguntas son chorradas pero comprendanme pe, soy novel en esta danza de C#
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

YO LA RESPONDO :P

Publicado por AUGUSTO ESTEBAN (15 intervenciones) el 15/01/2005 05:57:57
lo que ocurre es que hay que asignar los valores de true o de false a una variable en el inicio de la sentencia, mas no dentrro la zona de respuesta de true o false, asi:

b=(checkBox1.Checked==true ? true : false);

:P perdon por hacerles perdeer su tiempo pero recien aprendo y me topo con estas cosillas. sorry
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:YO LA RESPONDO :P

Publicado por Edgar (278 intervenciones) el 15/01/2005 20:44:59
Hola

La expresión que colocaste b=(checkBox1.Checked==true ? true : false); es lo mismo que hacer esto

b=checkBox1.Checked;

Esto te ahorrará bastante código y es más fácil de mantener

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar