c# - empty - Un trazador de líneas para If Cadena no es nulo o está vacío
string null c# (5)
Usualmente uso algo como esto por varias razones a lo largo de una aplicación:
if (String.IsNullOrEmpty(strFoo))
{
FooTextBox.Text = "0";
}
else
{
FooTextBox.Text = strFoo;
}
Si voy a usarlo mucho, crearé un método que devuelva la cadena deseada. Por ejemplo:
public string NonBlankValueOf(string strTestString)
{
if (String.IsNullOrEmpty(strTestString))
return "0";
else
return strTestString;
}
y úsalo como:
FooTextBox.Text = NonBlankValueOf(strFoo);
Siempre me pregunté si había algo que fuera parte de C # que hiciera esto por mí. Algo que podría llamarse así:
FooTextBox.Text = String.IsNullOrEmpty(strFoo,"0")
el segundo parámetro es el valor devuelto si String.IsNullOrEmpty(strFoo) == true
Si no, ¿alguien tiene mejores enfoques que usan?
Esto puede ayudar:
public string NonBlankValueOf(string strTestString)
{
return String.IsNullOrEmpty(strTestString)? "0": strTestString;
}
Hay un operador coalescente nulo ( ??
), pero no manejaría cadenas vacías.
Si solo estuvieras interesado en lidiar con cadenas nulas, lo usarías como
string output = somePossiblyNullString ?? "0";
Para su necesidad específica, simplemente existe el operador condicional bool expr ? true_value : false_value
bool expr ? true_value : false_value
que puede usar simplemente para bloques de instrucciones if / else que establecen o devuelven un valor.
string output = string.IsNullOrEmpty(someString) ? "0" : someString;
Puedes usar el operador ternario :
return string.IsNullOrEmpty(strTestString) ? "0" : strTestString
FooTextBox.Text = string.IsNullOrEmpty(strFoo) ? "0" : strFoo;
Una vieja pregunta, pero pensé que agregaría esto para ayudar,
#if DOTNET35
bool isTrulyEmpty = String.IsNullOrEmpty(s) || s.Trim().Length == 0;
#else
bool isTrulyEmpty = String.IsNullOrWhiteSpace(s) ;
#endif
Puede escribir su propio método de Extension para el tipo String: -
public static string NonBlankValueOf(this string source)
{
return (string.IsNullOrEmpty(source)) ? "0" : source;
}
Ahora puedes usarlo como con cualquier tipo de cadena
FooTextBox.Text = strFoo.NonBlankValueOf();