update c# if-statement expression shortcode

c# - update access vba



c#short si la sentencia no funciona con int?(int=nulo) (5)

Estoy intentando acortar mi código usando short-if:

int? myInt=myTextBox.Text == "" ? null : Convert.ToInt32(myTextBox.Text);

Pero recibo el siguiente error: El tipo de expresión condicional no se puede determinar porque no hay una conversión implícita entre '''' e ''int''

Los siguientes trabajos:

int? myInt; if (myTextBox.Text == "") //if no text in the box myInt=null; else myInt=Convert.ToInt32(myTextBox.Text);

Y si reemplazo el ''nulo'' en entero (digamos ''4''), también funciona:

int? myInt=myTextBox.Text == "" ? 4: Convert.ToInt32(myTextBox.Text);


Lo que necesitamos es hacerle saber al compilador que ambas partes de la expresión if (if y else) son las mismas. Y es por eso que C # contiene la palabra predeterminada :

int? myInt=myTextBox.Text == "" ? default(int?) : Convert.ToInt32(myTextBox.Text);


Mi sugiero lo siguiente?

int value; int? myInt = ( int.TryParse(myTextBox.Text, out value ) ) ? value : default(int?);


Pruebe esto en su lugar:

int? myInt=myTextBox.Text == "" ? (int?)null : Convert.ToInt32(myTextBox.Text);


int? myInt=myTextBox.Text == "" ? (int?)null : Convert.ToInt32(myTextBox.Text);


int number =!string.IsNullOrEmpty(temp) ? Convert.ToInt32(temp) : (int?) null;