2

C# では、P/Invoke などのアンマネージ コードや、InternalCall などの CLR 実装コードが使用されることがわかっています。私が知りたいのは、mono 自体が完全な CLR を実装しているのか、アンマネージ コードだけを実装しているのか、それとも何も実装していないのかということです。.Net Reflactor または ILSpy を使用してマネージ アセンブリを表示できますが、パフォーマンスの問題が原因で、CLR がアンマネージ コードをどのように実装するかを知る必要がある場合があります。同様に: System.String.get_length() はどのように機能しますか? 誰でも上記の質問に答えることができます。または、これに関する情報を歓迎します。ありがとう。

4

1 に答える 1

4

はい、mono は CLR 全体を実装しているため、そのコードを見ると、 のようなメソッドの実装が見つかりますString.get_Length()

しかし、Mono は Microsoft CLR とは異なる実装です。つまりString.get_Length()、Mono でコードを調べると、Microsoft CLR では同じことを行う方法がまったく異なる可能性があります。

もう 1 つの選択肢は、Shared Source Common Language Infrastructureです。これは Microsoft によるもので、おそらく Mono よりも Microsoft の CLR の実装に似ていますが、それでも同じではありません。また、利用可能な最新バージョンは .Net 2.0 に対応しています。

于 2012-02-17T01:59:00.003 に答える