警告 73 CA1305 : Microsoft.Globalization : 由于 'string.Format(string, params object[])' 的行為可能因當(dāng)前用戶的區(qū)域設(shè)置不同而不同,請將 'ComEditBarCom.Page_Load(object, EventArgs)' 中的此調(diào)用替換為對 'string.Format(IFormatProvider, string, params object[])' 的調(diào)用。如果要向用戶顯示 'string.Format(IFormatProvider, string, params object[])' 的結(jié)果,請將“CultureInfo.CurrentCulture”指定為“IFormatProvider”參數(shù);另外,如果軟件將存儲和訪問此結(jié)果(例如,要將它保留到磁盤或數(shù)據(jù)庫中),則指定“CultureInfo.InvariantCulture”。 E:\work\TomCMS\TomCMS.Web\Components\EditBar\ComEditBarCom.ascx.cs 18 TomCms.Web代碼分析說有上面的問題,到底有啥問題???
2 回答

冉冉說
TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個贊
string.Format在內(nèi)部使用CultureInfo對字符串進(jìn)行處理,如果不指定CultureInfo,會使用當(dāng)前線程的CultureInfo。因此,在不同的區(qū)域設(shè)置中,同樣的代碼可能會產(chǎn)生不同的結(jié)果。如DateTime.ToString(IFormatProvider)在不同的區(qū)域設(shè)置中會產(chǎn)生完全不同形式的結(jié)果,string.Format的原理與之相同。
因此,代碼分析建議將string.Format替換為帶有IFormatProvider參數(shù)的重載形式,就是希望在國際化軟件中,對于不同的區(qū)域設(shè)置也能產(chǎn)生相同的結(jié)果。當(dāng)然,如果您的軟件肯定不是國際化的,不使用IFormatProvider也無妨。
- 2 回答
- 0 關(guān)注
- 810 瀏覽
添加回答
舉報
0/150
提交
取消