4

メモリ用のdoubleからstringへの変換の最適化に関する質問のフォローアップとして(c#doubleからcharacter arrayまたはalternativeを参照)、.NETの内部でdouble.ToString()がどのように実装されているかを確認したいと思いました。ildasmまたはDotPeekを使用すると、次のようになります。

[SecurityCritical]
[MethodImpl(MethodImplOptions.InternalCall)]
public static string FormatDouble(double value, string format, NumberFormatInfo info);

また

IL_0008:  call string System.Number::FormatDouble(float64,
                                                  string,
                                                  class System.Globalization.NumberFormatInfo)

そして、それ以上ドリルすることはできません。私の理解が正しければ、これはCLRへの呼び出しだからだと思います。実装が何であるかを知る簡単な方法はありますか?

4

4 に答える 4

3

モノソースコードを見るのはどうですか?Mono は単純に IL を使用して、C コードを使用せずにすべてのことを行います。

mcs/class/corlib/System/Double.cs
mcs/class/corlib/System/NumberFormatter.cs
于 2012-06-07T09:00:54.593 に答える
1

WinDbg が役立つと思います。また、実装を mono でチェックアウトしましたか?

于 2012-06-07T09:00:23.433 に答える