第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

CultureInfo.InvariantCulture是什么意思?

CultureInfo.InvariantCulture是什么意思?

慕姐4208626 2019-11-08 14:34:59
我有一串這樣的文字:var foo = "FooBar";我想聲明第二個字符串,bar并使它等于我的第一個字符串的第一個和第四個字符foo,所以我這樣做是這樣的:var bar = foo[0].ToString() + foo[3].ToString();這可以按預期工作,但是ReSharper建議我將其放在Culture.InvariantCulture括號內(nèi),因此此行的結(jié)尾如下:var bar = foo[0].ToString(CultureInfo.InvariantCulture)        + foo[3].ToString(CultureInfo.InvariantCulture);這是什么意思,它將影響我的程序的運行方式嗎?
查看完整描述

3 回答

?
BIG陽

TA貢獻1859條經(jīng)驗 獲得超6個贊

當數(shù)字,日期和時間格式化為字符串或從字符串中解析時,將使用區(qū)域性來確定其完成方式。例如,在主流en-US文化中,您具有以下字符串表示形式:

  • 1,000,000.00-一百萬,兩位小數(shù)

  • 1/29/2013-發(fā)布日期

在我的文化(da-DK)中,值具有以下字符串表示形式:

  • 1.000.000,00-一百萬,兩位小數(shù)

  • 2013年1月29日-發(fā)布日期

在Windows操作系統(tǒng)中,用戶甚至可以自定義數(shù)字和日期/時間的格式,還可以選擇操作系統(tǒng)以外的其他區(qū)域。所使用的格式是用戶的選擇方式,應(yīng)該是這樣。

所以,當你格式化值使用被顯示給用戶,例如ToStringString.Format或使用從字符串解析DateTime.ParseDecimal.Parse默認是使用CultureInfo.CurrentCulture。這允許用戶控制格式。

但是,許多字符串格式設(shè)置和解析實際上不是應(yīng)用程序和用戶之間交換的字符串,而是應(yīng)用程序和某些數(shù)據(jù)格式(例如XML或CSV文件)之間交換的字符串。在那種情況下,您不想使用,CultureInfo.CurrentCulture因為如果格式化和解析是使用不同的區(qū)域性進行的,則它可能會中斷。在這種情況下,您要使用CultureInfo.InvariantCulture(基于en-US區(qū)域性)。這樣可以確保值可以無問題地往返。

該ReSharper的給你警告的原因是,一些應(yīng)用程序編寫者不知道這種區(qū)別可能導致意想不到的結(jié)果,但他們從來沒有發(fā)現(xiàn)這一點,因為他們CultureInfo.CurrentCulture就是en-US具有相同行為CultureInfo.InvariantCulture。但是,一旦在另一種區(qū)域性中使用了該應(yīng)用程序,就有機會使用一種區(qū)域性進行格式化而另一種區(qū)域性用于解析該應(yīng)用程序。

總結(jié)一下:

  • CultureInfo.CurrentCulture如果要格式化或解析用戶字符串,請使用(默認)。

  • 使用CultureInfo.InvariantCulture如果格式化或解析應(yīng)該由一個軟件是解析的字符串。

  • 由于用戶無法控制格式化和解析的方式,因此很少使用特定的國家文化。


查看完整回答
反對 回復 2019-11-08
  • 3 回答
  • 0 關(guān)注
  • 964 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號