2009-08-24 112 views
37

我一直想问的问题,实际上是害怕 - .NET Framework编写的语言是什么?我的意思是图书馆本身。
在我看来,它主要是C和C++。 (我希望Jon Skeet正在阅读这篇文章,听到他对它的看法会很有趣)用什么语言编写.NET Framework?

+1

下载源并找出:http://referencesource.microsoft.com/netframework.aspx – 2010-11-18 21:52:08

+0

@michielvoo你的链接死了,更新将不胜感激。 – Aelphaeis 2014-06-18 15:13:22

+4

@Aelphaeis它现在只是http://referencesource.microsoft.com – 2014-06-18 18:44:22

回答

50

CLI/CLR是用C/C++和程序集编写的。几乎所有的.NET框架类都是用编译为IL的C#编写的,它在CLR中运行。如果您在Reflector的类中打开一个框架库,您可能会看到一个属性,例如[MethodImpl(MethodImplOptions.InternalCall)],它将调用委托给CLI。

+9

请注意,这只适用于Microsoft .NET。 CLI的其他实现可能有不同的体系结构。例如,在Mono中,很多用Microsoft.NET中的C/C++编写的东西其实都是用C#编写的。另外,微软研究院和其他组织都有元代实现,它们完全用C#编写。 – 2009-08-25 14:30:14

+0

JörgW Mittag - 谢谢,不知道。将不得不看看C#的实现。 – 2009-08-25 17:10:37

+0

这基本上在[StyleCop的历史](https://stylecop.codeplex.com/wikipage?title = A%20Brief%20History%20of%20CSharp%20Style),如果有人想参考引用。 – 2012-04-03 14:26:03

3

.NET框架的一些部分是开源的,像ASP.NET MVC,它是用C#编写。

由于.NET框架代表了许多程序集,我认为不同的库是用不同的语言编写的。只要该语言符合CLR标准,就可以用它来构建框架的一部分。

尽管如此,我认为.NET Framework的大部分是用C++和C#编写的。

5

.NET完全是用C和C++编写的,因为基础是汇编语言。与新语言相比,用C集成汇编语言更容易。

3

Microsoft .NET Framework分为许多部分。

CLR:C++

IO /信号处理:装配

基类库:C#

的System.Threading:C#

复杂的数据结构:C++

:GetHashCode的