c#学习笔记--数组、枚举、结构、值类型和引用类型
2013-05-29 22:35
627 查看
一、数组
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.可空类型
?操作符和??操作符……
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.可空类型
?操作符和??操作符……
相关文章推荐
- C#基础学习笔记--数据类型,值类型,结构类型,枚举类型
- C#学习笔记12:枚举、结构、数组基础学习
- C#学习笔记6——C#中枚举、结构、数组
- C# step by step 学习笔记8 CHAPTER 9 使用枚举和结构创建值类型
- C# 2010 从入门到精通 学习笔记8 第9章 使用枚举和结构来创建值类型
- C#基础精华02(静态类,值类型,引用类型,枚举,结构,ref与out)
- C#基础精华02(静态类,值类型,引用类型,枚举,结构,ref与out)
- C#学习第八天 值类型和引用类型、字符串类String
- C#学习第四天 常量、枚举、结构、数组
- c#学习笔记之五 C与C#在几种主要数据结构在上区别 数组和枚举
- C#学习笔记: 值类型和引用类型
- 【1】C#基础:数据类型、运算、随机、枚举、结构、数组、列表、文件和文件流、序列化、MD5
- [学习笔记]Asp.net(C#)菜鸟进级系列之引用类型
- C#学习笔记 3 值类型与引用类型
- .net学习之.net和C#关系、运行过程、数据类型、类型转换、值类型和引用类型、数组以及方法参数等
- C#学习笔记(四):结构类型
- C#枚举类型、枚举类型与其他类型转换、结构类型、数组类型
- C#学习笔记(四):结构类型
- (原创)c#学习笔记09--定义类07--结构类型
- (原创)c#学习笔记08--面向对象编程简介02--OOP技术07--引用类型和值类型