c# 基础知识.net framework(一)

从c++和java之后诞生的面向对象编程语言。
吸取了c++与java的优点,使用简单、安全,是微软整个.net架构的核心组成部分。

.net架构是一种通用的编程模型,更是一种生态平台,可以开发微软的客户端、服务器端、应用服务等等,还包括一系列与之对应的开发工具。

符合微软的一贯传统“用户什么都不懂,需要我们来指导”,因此整个.NET架构或者说体系,尽量的傻瓜化,大量的底层工作都对程序员隐藏了,让程序员可以减少工作强度。

基本上发展路程就是c+win32----> c++ 与MFC ----> c#与.NET framework

事实上.NET framework架构不光可以用c#,也可以用c++、vb、java等语言来调用,只是c#支持的更好,微软亲儿子。

第一个版本c# 1.0 与.NET framework 一起诞生于2002年,此时.NET framework有大约3000个类库和CLR(公共语言运行时库)。
在CLR和.net诞生之前,每一种语言都需要自己的运行库才能在window平台上正确运行。
而有了CLR和.net,c#编译器会把代码编译生成中间语言(IL)代码,当程序开始运行时,CLR会负责把IL(托管代码)生成本地代码。
此外,CLR还负责垃圾收集、调试扩展和线程工具。
其思想和java的虚拟机相同,可以把CLR==JVC

随着时间推移,.NET framework也越来越庞大和复杂,到了2017年,c#进入7.0版本,CLR进入4.0版本、.NET framework进入4.7版本,而类库也超过两万个。

为了紧跟时代发展,微软也在给.NET瘦身、同时提供跨平台支持,于是在2016年诞生出了.net core。

从windows8开始,windows操作系统也提供了另一种框架:windows 运行库(windows runtime),windows10使用运行库的第3版,它是由wup(windows universal platform,windows通用平台)使用,与.net framework不同,这个框架使用本地代码创建、在语言投射的帮助下、windows运行库可以用于javascript、c++和.net语言,它看起来像编程环境的本地代码。

c#的类型分类

总体分成两个大类:①值类型 ②引用类型
c# 基础知识.net framework(一)
和c语言不一样的是,所有的基本类型也是一种结构体。
char类型占用16个字节,byte 8字节无符号整数;short 16位有符号整数; ushort 16位无符号整数;
int 32位有符号整数;sbyte 8字节有符号整数;
long 64位有符号整数;ulong 64位无符号整数;
float 32位浮点数,有效位数7位;
double 64位浮点数,有效位数15/16;

decimal 128位浮点数,有效位数28位,专用于财务计算的十进制表示。

如果对一个int、uint、long或ulong类型的整数没有显式声明,则默认为int类型。
如果对一个浮点数赋值,默认使用double,如果想指定float,则float f=2.56F。
如果想对一个浮点数指定为decima类型,则decimal d=12.3M。
和c语言不同,布尔型只能用true和false表示,不能使用0为假,非0为真的方式。

堆区的优点是空间大,生存期长,能跨多个函数调用;栈区空间小,容易爆栈,生存期短。

它有一个关键字var ,可以用来自动推断类型:
var a=100;
与int a=100;等价

为了替代传统的转义字符

string filepath ="c:\\windows\\test.txt"

c#提供了@字符,表明无需转义

 string filepath [email protected]"c:\windows\test.txt"

除了传统的//注释方法,c#还提供了xml注释,以/// 开头
它会自动创建xml格式的文档说明。

///<code>
///</code>
///<example>
///</example>