[解決済み】Boolean.ToStringが "True "と出力し、"true "と出力しない理由
質問
true.ToString()
false.toString();
Output:
True
False
それが "True" であって "true" でないのは、何か正当な理由があるのでしょうか?XMLのboolean型としてXMLを書くと壊れます。 は小文字 また、C#のtrue/falseとも互換性がありません(CLSは分かりませんが)。
更新
以下は、C#でこの問題を回避するための、私の非常に雑な方法です(XMLを使用する場合)。
internal static string ToXmlString(this bool b)
{
return b.ToString().ToLower();
}
もちろん、スタックに1つメソッドが追加されますが、ToLowers()はどこでも削除されます。
解決方法は?
その質問に本当に答えられるのは、マイクロソフトの人間だけです。しかし、私はそれについていくつかの楽しい事実を提供したいと思います;)
まず、MSDNにはこのように書かれています。 Boolean.ToString() メソッドを使用します。
戻り値
タイプ System.String
真の文字列 この インスタンスが真である場合、または FalseString もし このインスタンスの値がfalseである場合。
備考
このメソッドは 定数 "True" または "False" です。ただし XMLは大文字と小文字を区別します。 XMLの仕様では、"true"を認識します。 と"false"を有効なセットとして認識します。 ブール値。もし、Stringオブジェクトが ToString() メソッドが返す がXMLファイルに書き込まれる場合、その String.ToLowerメソッドを使用する必要があります。 に変換するために最初に呼び出されます。 小文字
ここで面白い事実その1があります。それは、TrueStringやFalseStringを全く返さないことです。これはハードコードされたリテラル "True" と "False" を使用しています。フィールドを使用しても、読み取り専用とマークされているので、変更することはできません。
別の方法です。 Boolean.ToString(IFormatProvider) はもっと面白い。
備考
provider パラメータは予約されています。それはこのメソッドの実行に関与しません。つまり、Boolean.ToString(IFormatProvider) メソッドは、プロバイダパラメータを持つほとんどのメソッドとは異なり、文化固有の設定を反映しないことを意味します。
解決策は?あなたが具体的に何をしようとしているかによります。それが何であれ、ハックが必要なのは間違いないでしょう ;)
関連
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] C#の[Flags]Enum属性の意味とは?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] AddTransient、AddScoped、AddSingleton サービスの相違点
-
[解決済み] C#でHashtableよりDictionaryが好まれる理由とは?
-
[解決済み] LINQで.Firstと.FirstOrDefaultを使用するタイミングは?
-
[解決済み] フォルダが存在しない場合、作成する
-
[解決済み] ディレクトリ内のすべてのファイルやフォルダを削除する方法は?
-
[解決済み] 3つのブール値のうち、少なくとも2つが真であるかどうかをチェックする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み] Razorを使って、ブール値をJavaScriptの変数にレンダリングするにはどうしたらいいですか?