2009-08-24 17 views
37

私はいつも尋ねたいと思っていた質問を恐れていましたが、実際にはにはどのような言語が書かれていますか?私はライブラリ自体を意味します。
主にCとC++だったようです。 (私はJon Skeetがこれを読んでくれることを願っています。).NET Frameworkはどの言語で書かれていますか?

+1

ソースをダウンロード見つけ出す:http://referencesource.microsoft.com/netframework.aspx –

+0

@michielvooあなたのリンクは亡くなりました、更新されると感謝します。 – Aelphaeis

+4

@Aelphaeis今すぐhttp://referencesource.microsoft.com –

答えて

50

CLI/CLRはC/C++およびアセンブリで記述されています。ほとんどの.NETフレームワーククラスは、CLRで動作するILにコンパイルされたC#で記述されています。 Reflectorクラスのフレームワークライブラリをクラックすると、[MethodImpl(MethodImplOptions.InternalCall)]のような属性が表示され、呼び出しをCLIに委任します。

+9

これはMicrosoft .NETにのみ適用されます。 CLIの他の実装は、異なる方法で構築されてもよい。たとえば、Monoでは、Microsoft.NETのC/C++で書かれたものの多くは、実際にはC#でMonoで書かれています。また、マイクロソフトリサーチと他の組織の両方で、C#で完全に*書かれたメタサークルの実装もあります。 –

+0

JörgW Mittag - ありがとう、それを知らなかった。 C#の実装を見てみる必要があります。 –

+0

これは基本的に[StyleCopの歴史](https://stylecop.codeplex.com/wikipage?タイトル= A%20Brief%20History%20of%20CSharp%20Style)、参照が必要な場合は引用してください。 –

3

.NET MVCのようなオープンソースの.NET Frameworkの部分があります。 C#で書かれています。

.NET Frameworkは多くのアセンブリを表しているため、異なるライブラリが異なる言語で記述されていると考えています。言語がCLRに準拠している限り、フレームワークの一部を構築するために使用できます。

すべてが言った。私は、.NET FrameworkのシェアはC++とC#で書かれていると仮定します。

5

.NETはアセンブリ言語であるため、CとC++で完全に書かれました。新しい言語と比較して、Cとのアセンブリの統合はずっと簡単です。

3

Microsoft .NET Frameworkは多くのセグメントに分割されています。

CLR:C++

IO /信号処理:アセンブリ

基底クラスライブラリ:C#

System.Threading:C#

複雑なデータ構造: C++

例:GetHashCodeメソッド

関連する問題