你知道.NET与C#的关系吗?

这个问题很大啊,但是很多.NET求职者都比较模糊。小白有一次面试被问到这个问题,.NET与C#有什么关系?C# 9能运行在.NET Framework3.5 吗?这还真给小白难到了,平时开发还真没有注意这个问题。面试官问这个问题说实话有点两面性,从普通开发的角度来讲,没有啥用,只要能写代码就可以;但是从面试官的观点来说,问这个问题可以了解你对.NET和C#的熟悉程度。当然面试官面试的是一个架构师,大可问这个问题。本文将讨论这个话题。.

.NET与C#的关系

     首先.NET与C#两者不是一个东西,.NET 是一个免费的跨平台开放源代码开发人员平台,用于生成多种类型的应用程序(免费的跨平台开放源代码针对.NET Core/.NET5/.NET6)。.NET是C#运行环境,而C#是开发语言, C# 能够生成在 .NET 中运行的多种安全可靠的应用程序;.NET公共语言运行时 (CLR) 是生成所有 .NET 应用的基础,运行时支持多种语言,有 C#、F# 和 Visual Basic 语言。

    .NET的演进与其他开发语种有本质的区别。它的始终处于“不稳定的状态”,它的新版本除了增加一些新功能外还修改了前面版本的bug。.NET Framework与.NET Core有本质的区别,他们的运行原理发生了变化,.NET Core/.NET 5/.NET6的应用不再向下兼容.NET Framework,但类库可以通过.NET Standard协议规范得到兼容。C#语言不同,它的各个版本可以向下兼容,比如C#10是可以运行在.NET3.5的,当然有些新的特性是不能运行。C#和.NET两者没有必然的联系。

    下面我们先用C#10版本用.NET6环境创建的控制台程序简单写个字符串并输出,然后新建一个.NET3.5的控制台程序同样运行在.NET6环境创建的代码。

  static void Main(string[] args) {       string a = "abcs";      Console.WriteLine($"test{a}");      Console.ReadLine(); }

你知道.NET与C#的关系吗?

.NET 6运行结果

你知道.NET与C#的关系吗?

你知道.NET与C#的关系吗?

.NET 3.5运行结果

由此可见,C#语言和.NET两者没有必然的联系。

结语

    本文简单的讲述了.NET与C#的关系,他们两者具体的东西还很多,大家可以翻阅官方文档查看它们两者的定义。希望本文给大家带来收获,欢迎大家留言讨论和提出异议。