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;