Stavo leggendo l'articolo MSDN dello boolean structure, quando ho visto che un booleano ha due campi: TrueString e FalseString. Questi rispettivamente restituiscono "True" e "False".Perché bool.TrueString e bool.FalseString esistono?
Dopo alcune ricerche, l'unico esempio che ho trovato è this dotnetperls article. L'articolo afferma:
Spesso i programmi richiedono queste stringhe. TrueString e FalseString sono una coppia utile di membri di sola lettura. Rappresentano i valori di verità in formato stringa. Forniscono l'indirezione e l'astrazione direttamente usando stringhe letterali.
Quindi apparentemente è utile per alcune situazioni. Ma lo stesso articolo non riesce a fornire un esempio realistico (IMHO comunque).
Alcune ulteriori letture hanno portato alla mia attenzione: TrueString e FalseString sono campi statici di sola lettura. E this dornetperls article stati:
Le specifiche della lingua consigliano di utilizzare campi pubblici statici di sola lettura ... quando il campo è soggetto a modifiche in futuro.
Ora questo posso in qualche modo capire. Se gli sviluppatori .NET decidono di cambiare "True" e "False" rispettivamente "OkeyDokey" e "Negatory", è consigliabile utilizzare TrueString e/o FalseString.
Ma questo mi lascia ancora la domanda: in quale tipo di scenario vuoi confrontare una stringa con la stringa letterale di un booleano? Perché apparentemente: "I programmi spesso ne hanno bisogno".
Posso immaginare se stai facendo il tuo proprio parsing (e non sfruttando 'Boolean.Parse' per qualsiasi motivo).Probabilmente controbatterei affermando che "i programmi hanno spesso bisogno di" loro, ma è plausibile che possano essere usati ed è un frutto piuttosto basso per il team BCL da includere. Presumibilmente il metodo 'Boolean.ToString' li sfrutta anche quando si esegue l'output così almeno in quel senso fornisce una dichiarazione singola/centrale di ciò che dovrebbero essere le rappresentazioni di stringa booleane e gli sviluppatori possono usarlo per confrontare qualsiasi output di stringa da un' bool' piuttosto di hard-coding '" True "'. –
... perché l'ambiente .NET è progettato per supportare molte lingue. http://stackoverflow.com/a/491367/284240 –
@TimSchmelter, puoi spiegare perché il supporto multilingue è rilevante sul perché vuoi conoscere la stringa letterale di un booleano? EDIT: la domanda del link che hai postato mi ha dato un buon esempio. – Jordy