Days1
C#
C#是.Net Framework的一个不可缺少的组件;它不仅具有一般面向对象语言所具有的特性外,还定义了一些新的特性,例如:委托.属性.XML.LINQ
.Net Framework
C#的运行过程:首先 C#是在.net framework上运行的,它是windows上一个不可缺少的组件,.netframework包括一个称为公共语言运行环境的(CLR)和一个类库,当C#源程序加载到它之上时,通过
C#编译软件将其编译成一个中间语言(IL),然后中间语言和其需要的一些资源被统称为程序集的可执行文件,放在磁盘上,其扩展名一般为.exe或.dll.程序集中还提供了一些程序的信息,当程序安全时CLR就会执行(JIT)实时编译,将中间语言编译成机器语言.
Visual Studio
可以创建控制台应用程序.窗体应用程序等等.
Days2
1. 控制台方法
2. 数据类型
有三种:内置类型,自定义类型,匿名类型
3. 数值类型:
值类型和引用类型.值类型:将变量赋值给一个变量,则将数据也复制给了它,然后两个变量无关了,隐式派生于SYSTEM.VALUETYPE
引用类型: 把变量存放在线程堆栈中,同时在托管堆中开辟一段空间存放数据,只是把数据的指针指向变量,当定义一个变量将原来的指针指向它的时候,如果改变这个变量,则原来的值也将发生改变.除string之外,string具有不可变性,当再次向它赋值时,它将再在托管堆中开辟一个新的存储空间,将原来的指针废掉,重新指向开辟的新空间.
引用类型实例原理:
例如:Product p=new Product
{
p1.PrintProductMessage();
}
当程序执行这段代码时,遇到new就先在托管堆中开辟一段空间存放 类成员,如:static成员,方法.然后执行main函数,再将对象名放入线程堆栈中,然后在托管堆中开辟一片对象空间,在对象空间中存放的是:如字段,属性等.然后,将对象名指向托管堆中的对象空间.
4. 匿名类型和VAL
隐匿类型的本地变量是强类型变量,由编译器确定类型,如果要将一个val变量赋值为一个变量时,必须得先用val对其进行初始化,这样编译器才能识别它的类型.
5. 装箱和拆箱
装箱就是将一个值类型转换为一个引用类型,拆箱则是将一个引用类型转换成一个值类型.
6. 类型转换
1. 类型.parse(string)将指定类型转换成string类型
2. convert.to类型();将指定的类型转换成to后的类型
3. 强制类型转换(int)类型 将指定类型转换成int;