[解決済み] 不変の文化とは?
2022-04-21 01:29:30
質問
の使い方を示す例をどなたか教えてください。 不変の文化 ? ドキュメントに記載されている内容が理解できないのですが。
どのように解決するのですか?
不変の文化とは、変わらないからこそ役に立つ特別な文化です。現在のカルチャーはユーザーごとに、あるいは実行ごとに変わる可能性があり、同じであることを当てにすることはできません。
毎回同じカルチャを使用できることは、いくつかのフローで非常に重要です。たとえばシリアライゼーションでは、あるカルチャでは1,1の値を持ち、別のカルチャでは1.1の値を持つことが可能です。もし、2番目のカルチャーで "1,1" 値をパースしようとすると、パースは失敗します。しかし、不変のカルチャーを使用して数値を文字列に変換し、後で任意のカルチャーセットを持つ任意のコンピューターからそれを解析して戻すことができます。
// Use some non-invariant culture.
CultureInfo nonInvariantCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = nonInvariantCulture;
decimal dec = 1.1m;
string convertedToString = dec.ToString();
// Simulate another culture being used,
// following code can run on another computer.
nonInvariantCulture.NumberFormat.NumberDecimalSeparator = ",";
decimal parsedDec;
try
{
// This fails because value cannot be parsed.
parsedDec = decimal.Parse(convertedToString);
}
catch (FormatException)
{
}
// However you always can use Invariant culture:
convertedToString = dec.ToString(CultureInfo.InvariantCulture);
// This will always work because you serialized with the same culture.
parsedDec = decimal.Parse(convertedToString, CultureInfo.InvariantCulture);
関連
-
[解決済み] スマートクライアント・ソフトウェアファクトリーの体験談
-
[解決済み] gacutil.exeはどこですか?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] usingディレクティブはネームスペースの内側と外側のどちらを使うべきですか?
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] C#で文字を繰り返し表示する最適な方法
-
[解決済み] C#でメソッドをパラメータとして渡す
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] <Database> コンテキストを支えるモデルが、データベース作成後に変更されました。
-
[解決済み] "ItemsSourceを使用する前に、Itemsコレクションを空にする必要があります。"
-
[解決済み] WPFで角丸ボタンを作成する/作るには?
-
[解決済み] SQL Server Compact EditionデータベースのLINQ to SQLで、"Row not found or changed "例外を解決するにはどうすればよいですか?
-
[解決済み] 24:00:00 を超える値を持つ .Net Timespan を格納するための正しい SQL タイプは何ですか?
-
[解決済み] ファイルまたはアセンブリをロードできませんでした 操作がサポートされていません。(HRESULT: 0x80131515 からの例外)
-
[解決済み] Nuget接続の試行に失敗しました。"Unable to load service index for source"。
-
[解決済み] C#で文字列をdoubleに変換する
-
[解決済み] 埋め込みリソーステキストファイルの読み方
-
[解決済み] Math.Round(2.5)はなぜ3でなく2を返すのですか?