Czy istnieje skrótowy sposób na denillifię ciąg w C#?Czy istnieje skrótowy sposób na denillifię ciąg w C#?
byłoby odpowiednikiem (jeśli „x” jest ciągiem znaków):
string y = x == null ? "" : x;
Chyba mam nadzieję, że jakiś podmiot, który działa podobnie jak:
string y = #x;
życzeniowe myślenie, co?
Najbliżej mam do tej pory jest to sposób na rozszerzenie klasy String:
public static string ToNotNull(this string value)
{
return value == null ? "" : value;
}
która pozwala mi robić:
string y = x.ToNotNull();
Wszelkie ulepszenia na tym, anyone?
Unikaj pustych ciągów znaków, aby uniknąć tego problemu. Jeśli ktoś tworzy ciągi zerowe, może być konieczna przemoc. YMMV. – Greg
Fakt, że twój ostatni przykład działa, jest dość przerażający, ponieważ wywołujesz metodę na obiekcie, aby sprawdzić, czy obiekt jest = pusty. Wiem, ze względu na to, że metody rozszerzania są statyczne, ale trochę się mylą, gdy się na nie patrzy. – ntziolis
łańcuchy null są złe, tworzenie instancji za pomocą String.Empty i unikanie logiki jak powyżej. –