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;}
}
---本博客是学习以后记录知识,如有侵权,请联系删除!!!