8

ToString()int variableを呼び出すループがありますi

for (int i = 1; i <= n; i++)
{
    @Html.ActionLink(@i.ToString(), "Index")
}

Resharper は、次のようにすべきだと言っています。

文字列変換でカルチャを明示的に指定します。

どうしてこれなの?

int を文字列に変換する方法はいくつありますか?

1だけと思っていました。

4

2 に答える 2

7

1000 のように、シンボルをグループ化するさまざまな方法があります。1,000 と 1,000。また、国によって数字に使用される数字が異なります。 中国の数字

[コントロール パネル] -> [地域と言語] -> [形式] -> [追加設定] -> [標準桁数] で異なる数字を確認できます。(勝利7)

于 2012-09-20T10:39:52.753 に答える
1

一般に、現在のカルチャを使用するかどうか、または処理するデータがカルチャ インバリアントであるかどうかを常に明示的に指定することをお勧めします。問題は、ソフトウェアによってのみ処理され、ユーザーに提示されないデータ (データベース識別子など) を処理している場合、マシンによってデータが異なる場合に問題が発生する可能性があることです。

たとえば、データベース識別子は、あるカルチャを持つマシンでシリアル化され、異なるカルチャを持つマシンで逆シリアル化される場合があります。その場合、異なる可能性があります! 処理している文字列がカルチャ不変であることを明示的に指定すると、マシンに設定されているカルチャに関係なく、常に同じになります。

このトピックの詳細については、MSDN コード分析ドキュメントを参照してください。

CA1305:IFormatProvider を指定します

于 2012-09-21T08:19:08.617 に答える