Die gemeinsame FormatHelper
Klasse unten bietet eine einfache Lösung unter Verwendung von zwei Varianten einer überladenen Methode aufgerufen StringToBoolean
.
FormatHelper.StringToBoolean(String value)
FormatHelper.StringToBoolean(String value, Boolean NullOrEmptyDefault)
Beide Varianten bieten eine fall insentive Zeichenfolge Spiel
1) Die normale Umwandlung von String leer oder null Strings false
wird
die folgenden Beispiele boolean säumige ergeben a boolean
Wert von false
: -
Boolean myBool = FormatHelper.StringToBoolean("");
Boolean myBool = FormatHelper.StringToBoolean("0");
Boolean myBool = FormatHelper.StringToBoolean("false");
Boolean myBool = FormatHelper.StringToBoolean("False");
Boolean myBool = FormatHelper.StringToBoolean("no");
Boolean myBool = FormatHelper.StringToBoolean("off");
Alle andere String-Werte werden in einem Boolean
Wert von true
wie führen: -
Boolean myBool = FormatHelper.StringToBoolean("1");
Boolean myBool = FormatHelper.StringToBoolean("true");
Boolean myBool = FormatHelper.StringToBoolean("True");
Boolean myBool = FormatHelper.StringToBoolean("yes");
Boolean myBool = FormatHelper.StringToBoolean("xyz blah");
Hinweis: unter dem Wert von BooleanStringOff
in der Klasse bearbeiten mehr (oder weniger) Werte für falsch/off schließen
2) folgt den gleichen Regeln wie 1) oben, jedoch kann ein Standardwert von true
als zweite Argument für die Umwandlung geliefert werden.
Der Standardwert wird verwendet, wenn der Wert String
leer ist oder null
. Dies ist nützlich, wenn ein fehlender Zeichenfolgenwert einen true
-Status anzeigen muss.
Das Beispiel folgende Code wird true
Rückkehr
Boolean myBool = FormatHelper.StringToBoolean("",true);
Das folgende Codebeispiel false
Boolean myBool = FormatHelper.StringToBoolean("false",true);
Dies ist der Code für die FormatHelper
Klasse
public class FormatHelper
{
public static Boolean StringToBoolean(String str)
{
return StringToBoolean(str, false);
}
public static Boolean StringToBoolean(String str, Boolean bDefault)
{
String[] BooleanStringOff = { "0", "off", "no" };
if (String.IsNullOrEmpty(str))
return bDefault;
else if(BooleanStringOff.Contains(str,StringComparer.InvariantCultureIgnoreCase))
return false;
Boolean result;
if (!Boolean.TryParse(str, out result))
result = true;
return result;
}
}
zurück
Danke! Das ist, was ich suchte, eine Erklärung warum. Wenn einige Sprachen in der Tat 0 für wahr, und -1 für falsch verwenden, denke ich ehrlich, sie sind vermasselt, aber das ist ein guter Grund, nicht automatisch durch eine Analyse anzunehmen, dass einige Entwickler blind verwenden können. –
Warum, ja. Ja, es sollte ja/nein aus/angehen. – WEFX
Um zu erklären, warum einige Sprachen 0 für wahr und -1 für falsch verwenden, betrachten Sie ihre binären Darstellungen: '00000000' und' 11111111'. – MCattle