首页 » 学习笔记 » 正文

【学习笔记】快速认识C#编程语言

.NET体系结构

file

.NET Framework位于操作系统与应用程序之间,负责管理在.NET Framework上运行的各种应用程序。也就是说.NET应用程序不依赖于操作系统,只依赖于.NET Framework。

来看一段C#代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace First_Helloworld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello world!");//向控制台输出内容
            Console.ReadKey();//暂停程序        }
    }
}

这一段代码的含义是:引用的命名空间

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
为什么要引入命名空间?

深入理解Console.WriteLine("Hello world!");
Console是一个类,是System命名空间下的一个静态类,
WriteLine是Console类下的一个静态方法。
ReadKey是Console类下的另一个静态方法
C#的运行原理:

file

高级语言源程序执行时都要经过编译或者解释成机器语言程序才能被CPU识别执行。但是C#程序执行时分为2次编译期,第一次CLR对C#代码(托管代码)进行第一次编译,将源代码编译成dll或者是exe文件,这类文件都是由中间语言组成(即此时代码被编译成中间语言)。然后是运行期,CLR会针对目前特定的硬件环境使用即使编辑(JIT),也就是将中间语言编译成本机代码并执行,把将编译过后的代码放入一个缓冲区中。下次使用相同的代码时,就执行从缓冲区调用。也就是说相同代码只编译一次,从而提高了程序运行速度(一次编译,处处执行)。
Exe文件:编译后生成的可执行文件,里面是IL指令。可以通过MSIL查看工具 ildasm.exe查看,如下图。
Dll文件:编译后生成的动态链接库文件,里面也是IL指令。
以上两种类型文件是.NET程序编译后的核心文件。

.NET是如何实现支持多语言、跨平台的?

.NET应用程序执行时不是被直接编译成本机代码,而是被编译成Microsoft 中间语言 (MSIL),然后中间语言交由公共语言运行库(CLR)执行,CLR的实时编译器(JIT)根据本机的硬件、操作系统等编译成本机代码。

VS中自定义C#快速简写代码

参考:
https://blog.csdn.net/a980433875/article/details/17291583