.NET Framework中的语言互操作性(基本概念)是什么?

Inf*_*ero 2 .net

我正在阅读维基百科中的.NET Framework文章,第一段描述了这个框架的一般概念,它说:

它包括一个大型库,并提供跨多种编程语言的语言互操作性(每种语言可以使用其他语言编写的代码).

当它宣称.NET提供语言互操作性时,共享的是什么:代码或代码功能?

例如,我有以下简单的代码:

class Math
{
   public double Pow( double a, double b)
   {
      return Math.Pow(a,b);
   }
}
Run Code Online (Sandbox Code Playgroud)

我是否可以访问C#代码或Math对象的实例化?

Chr*_*ris 10

编译C#程序时,它将编译为IL(中间语言).然后,任何其他.NET语言都可以使用该编译的程序,例如,Visual Basic程序可以引用您的程序,创建Math类的实例并使用它.

Visual Basic不关心(或知道)您的Math类是用C#编写的,它看到的只是一个.NET类.这是语言互操作性.如果VB.NET只能使用用VB.NET编写的类,而C#只能使用C#编写的类,那么这些语言就无法互操作.


Nik*_*tev 5

语言互操作性是代码与使用不同编程语言编写的代码进行交互的能力。语言互操作性有助于最大限度地重用代码,从而提高开发过程的效率。用任何 .NET 语言编写并编译的每个代码都可以从其他 .NET 语言中重用。