澄清我对.NET和C#的理解

时间:2013-12-12 19:43:08

标签: c# .net vb.net runtime

你能告诉我,我的理解是否正确?我以前认为.NET在查找之前是一种语言。然后,在阅读了一些我发现它是一个框架的网站之后,我认为这个框架就像某个应用程序的模板。现在我发现它是一个运行时(就像JVM一样?)和一个应用程序框架库(简单来说是什么?)。

当他们说.NET语言时,他们的意思是什么?就像在.NET运行时(CLR)上运行的语言一样?那么,C#和VB,它们是.NET语言(我认为),只适用于Windows机器或其他具有CLR的机器?因为那时,WinRT是什么呢?

“所有为.NET框架编写的程序,无论编程语言如何,都由CLR执行。” ---我以为CLR是.NET框架的一部分,那么他们为.NET框架编写的程序是什么?

我为大量的问题道歉,但这对我来说非常困惑,但我还没有参加任何操作系统或编译器设计课程,所以也许这就是原因。

也许这篇文章过于宽泛,但所有问题都是联系在一起的,所以如果我单独提出问题就没有意义。

除了你所说的一切,我发现了一个与此相关的好网站:

Does.NET_run_only_on_Windows“> HTTP://tutorials.csharp-online.net/CSharp_FAQ:是否 .NET_run_only_on_Windows

^^^以后看这个问题的人

4 个答案:

答案 0 :(得分:1)

所有语言如C#,F#,VB.net和更多语言都被编译为CIL(通用中间语言),由.net框架解释。

因此,如果您不使用本机API,则此代码通常是可移植的。如果你使用它们你也可以使它们便携,但这有点复杂但可能!在我的应用程序中,我将不同的平台dll文件放在多个目录中,其中所有我的本地路径变量。

但是,对于类似Unix的系统,你可以使用Mono a .net端口为Linux和Mac使用该代码。但是,当您使用mono时,需要重新编译应用程序。

答案 1 :(得分:1)

.NET是一个由许多库和编译器组成的框架。他们有几个不同的.NET编译器,包括对C#和VB.NET的支持。

答案 2 :(得分:1)

.NET这个词是一个用来涵盖很多东西的营销术语。但是,.NET Framework更具体。顾名思义,这是一个由许多东西组成的框架。

  • CLR(公共语言运行时),它是符合标准Microsoft发布的VM,称为CLI(公共语言接口)。这与Java的JVM相当。

  • CIL(通用中间语言)也称为IL或MSIL,它是CLR运行的语言。与Java的字节码相似。

  • .NET Framework标准库。

现在要使用.NET Framework运行,您需要使用面向它的语言(或以其他方式在CIL中编写代码)。这些语言通常称为.NET语言。其中最着名的是C#和VB.NET,但其他的存在,如F#和IronPython。当这些语言中的编译(或解释)代码成为CLR运行的CIL代码时。

请注意,.NET Framework只是CLI标准的一个实现。 Mono是另一种兼容的开源和多平台实现。

答案 3 :(得分:1)

您可以使用C#,VB.NET,Iron Python等来使用.NET Framework进行编程。一旦你编译了代码,它就变成了一个中间语言代码,这个代码可以由Windows机器上的CLR按标准解释,而另一些则通过Mono框架解释(这类似于JVM)。