dado el siguiente código:
string example = "1234"; long parsed_example = long.Parse(example); Console.Writeline(parsed_example); # => 1234Funciona genial.
el siguiente ejemplo no:
string example = ""; long parsed_example = long.Parse(example); # [System.FormatException: Input string was not in a correct format.]Sin embargo, el objetivo es:
string example = ""; if (example == "") { example = "0"; } long parsed_example = long.Parse(example); Console.Writeline(parsed_example); # => 0¿Hay una solución más corta y apropiada? El código anterior casi justificaría una pequeña función, sería preferible tener una solución en línea. Tal vez algo como (pseudocódigo):
string example = ""; long parsed_example = example ?? 0, long.Parse(example);long parsed_example = example == "" ? 0 : long.Parse(example); Sin embargo: no se obsesione con las soluciones de una sola línea; una solución de varias líneas suele ser más legible y correcta. No hay premios por crear código complejo. También puede consultar string.IsNullOrWhiteSpace , long.TryParse , etc. Por ejemplo:
long value; if (string.IsNullOrWhiteSpace(example)) { // what you want to do with blank/empty values value = 42; } else if (!long.TryParse(example, out value)) { // what you want to do with non-integer values value = 84; }