C# lesson2

一、C#数据类型

1、值类型

  包括数据相关(short、long、int 、double、float)、布尔(bool)、枚举

2、引用类型

Object 、对象、数组、字符串

二、存储方式

值类型

1、所有的值类型,都是存在栈里面

2、值类型的赋值,都是值的拷贝;

引用类型

1、引用类型,具体的值是存在堆里面,栈里面存的是他的引用地址

2、引用类型的赋值,是地址的拷贝

3、对字符串做修改的时候,不是在堆里面直接修改它的值,而是重新再堆里面开辟新空间

 

三、代码解读

命名空间:  useing。。。。。。

访问修饰符: public。。。。

数据类型:如 int  返回一个整数

Person p1=new Person();

1、当实例化一个对象的时候,就会在堆里面,将类里面非静态的所有字段、方法声明。

2、当实例化一个对象的时候,类里面的对象不管是一个值类型还是一个引用类型,都是存在堆里面

3、当实例化另外一个对象的时候,就会在堆里面找之前是否有过水花对象,如果有的话就会把里面的成员(字段)作为模板拷贝一份;

存储位置如下:

4、.net framework里面的GC(垃圾回收机制),会将内存里值为null或者长期不用的对象、变量回收;

 

内存里面有一个专门的区域叫静态区,专门存放静态数据:

 

四、装箱和拆箱

装箱:值类型穿转为引用类型;

int i=10;
Console.WriteLine(i.ToString());

拆箱:引用类型转化为值类型;

string s="10";
Console.WriteLine(Convert.ToInt32(s));

注:在程序里面要尽可能的避免装箱和拆箱,提高程序性能;

五、运算(同javascript)

特别的:操作符:??

运算规则:  a=b??c

意义:b等于null  则a=c     否则a=b

posted on 2017-01-12 14:24  _Mr_朱  阅读(130)  评论(0编辑  收藏  举报

导航