.net高级技术—IL、CLR、CTS、CLS

1.在.Net平台,不仅支持C#,还支持F#,VB.net等语言,所以需要让这些语言写的代码能够相互调用,这是出现了IL这种机制,全称为Intermediate Language(中间语言:MSIL):IL是程序最终编译可以执行的二进制代码(托管代码),这样C#可以调用VB.NET写的程序集(Assembly、dll、exe).

2.不同语言中的数据类型是各不相同的。

整型表示

VB.NET:Integer

C#:Int

由于这种不同,.NET平台规定了通用数据类型(CTS,Common Type System),各个语言编译器把自己语言的类型翻译成CTS中的类型。int是C#中的类型,而Int32是CTS里面定义的类型,int是C#的关键字,Int32不是

面试题:string和Stirng的区别是什么?Int和Int32的区别是什么?

string、Int是C#定义的类型,String、Int32是CTS定义的类型.

3.由于不同语言的语法不一样,比如

A类继承B类 c#代码

VB代码:

所以.NET平台规定了通用语言规范(CLS,Common Language Specificatiohn)

4.IL代码由公共语言运行时(CLR,Common Language Runtime)驱动运行,CLR提供了垃圾回收(GC Garbage
Collection),没有任何引用的对象可以被自动回收,分析什么时候可以被回收、JIT(即时编译器)

5.值类型是放在“栈内存”中,而引用类型是 引用是在"栈内存"的,而指向的对象在堆内存中,栈内存会在使用完后被自动释放,而"堆内存"需要GC来回收

上面讲了结构体是值类型,那么什么是结构体呢?

结构体:平时开发时很少去写结构体。不能像类一样继承,一个结构体不能从 另一个结构体或类继承,但是结构体从基类Objcet继承

语法:

//struct是定义结构体的关键字
Struct MyStruct
{
    public string Name{get;set;}
    public int Age{get;set;} 
}

---本博客是学习以后记录知识,如有侵权,请联系删除!!!

猜你喜欢

转载自blog.csdn.net/qq_33407246/article/details/88784043
cls