白黒羊

【C#】 Invariant Cultureとは

日付を扱うときやToString()に対してIDEが提案してくる Invariant CultureCurrent Culture の意味がずっとわからないままだったので調べました。

Invariant Culture とは、特定のロケールに依存しない米国基準の記法のことです。データを保存するなど、統一した基準が必要でなおかつ文字列として公開しない場合において、端末によって差異が生じることがなくなり便利です。
一方でUIなどユーザーに表示する文字列は Current Cultureを使うことで現在のロケールを適用できます。

最近話題になっていましたが、ベトナムなどフランス語の影響を受けていそうな? 地域では数値区切りのカンマの代わりにピリオドを使うことがあるようです。
内部データをCurrentCultureで持ってしまうと12,345というデータが12.345と見なされ得るため、Invariant Cultureを設定しておく必要があります。

参考

https://qiita.com/hkuno/items/5c6df3a100c23e9c35e4