CultureInfo und Boolean.ToString()



  • Hallo Leute,

    hab mal folgendes gemacht:

    bool t = true;
    
    			Console.WriteLine(t.ToString());
    
    			foreach(var it in  CultureInfo.GetCultures(CultureTypes.AllCultures))
    			{
    				try
    				{
    					Console.WriteLine(t.ToString(it));
    				}
    				catch 
    				{
    					Console.WriteLine("error '"+it+"'");
    				}
    			}
    

    Und mit is aufgefallen, das egal welche Culture, der bool Wert immer als "true" "false" string ausgegeben wird. Ich dachte das in der deutschen Kultur ein "wahr" /"falsch" rauskommen würde... is das hier absicht'?

    grüße



  • NullBockExcpetion schrieb:

    is das hier absicht'?
    grüße

    Ja! sie übersetzen dir nicht alle sprach-inhalte in deine sprache. das ist für so sachen gedacht, wie wenn du eine float eingabe vom nutzer haben willst und amis schreiben das mit . und deutsche mit , !



  • ich finde es schwachsinnig das das ToString() des bool eine IFormatProvider Überladung hat ^^
    Wenn man sich nämlich die interne Implementation an schaut, dann sieht man:

    public override string ToString()
    {
        if (!this)
        {
            return "False";
        }
        return "True";
    }
    
    public string ToString(IFormatProvider provider)
    {
        if (!this)
        {
            return "False";
        }
        return "True";
    }
    

    Herrlich, ist nicht einmal weiter delegiert 😃


Anmelden zum Antworten