现在的位置: 首页 > 综合 > 正文

c#学习笔记–数组、枚举、结构、值类型和引用类型

2013年04月25日 ⁄ 综合 ⁄ 共 601字 ⁄ 字号 评论关闭

一、数组

System.Array基类

多维数组:矩形数组(表示方法不同于C语言),交错数组(C语言不具备)

二、枚举类型

.net类型系统包括:类、接口、枚举、结构和委托。

System.Enum类类型

三、结构类型

关键字struct,“轻量级的类类型”,支持封装,但不能继承。

可以用new来创建结构变量,但也可以不用new

四、值类型和引用各类型

System.ValueType   System.object

1.赋值操作

结构类型是值类型,它的赋值操作会在栈中创建一个新的副本;

而对于引用类型,则只是在内存中重定向引用变量的引用,也就是在栈中创建了堆中实际对象的引用的副本;

包含引用类型的值类型,浅复制,也就是对于值类型中包含的引用类型的赋值,仍然只是复制了引用而已,若要实现深复制,需要实现IClonable接口。

2.引用类型的传递

分为默认的传递方式(值传递)和引用传递(ref或out关键字)

按值传递引用类型--被调用者可以改变对象的状态数据的值,但不能改变所引用的对象,也就是不能使其改变成为指向另一个对象的引用。

按引用传递的引用类型--既可以改变状态对象数据的值,又可以重新new一个对象并指向它,也就是可以改变所引用的对象。

值类型必须派生自System.ValueType;分配在栈上;

引用类型则派生自除了System.ValueType以外的任意类型;分配在托管堆上。

3.可空类型

?操作符和??操作符……

抱歉!评论已关闭.