简单来说,C#程序是一组类型声明。而类型是一种模板,用来创建数据结构
类型包括:
- 名称
- 用来保存数据成员的数据结构
- 行为(方法)及约束条件
通过 实例化类型 而创建的对象 被称为类型的对象(实例)
成员是指类型中的数据项个体,有两种:
- 数据成员,用于保存与这个类的对象或整个类相关的数据
- 函数成员,执行代码。函数成员定义类型的行为
从两种角度看类型:
- 预定义类型 和 用户定义类型
- 值类型 和 引用类型
预定义类型有:
- 非简单类型:object,string,dynamic
- 简单类型:非数值类型(bool、char),数值类型(整数类型、浮点类型)
用户定义类型有:
- 重点学习:class
- 常用类型:struct,enum,array,delegate,interface
按在内存中的存储位置(栈或堆)来分:
值类型(数据存放在栈里):
- 所有的整数类型
- bool
- struct,enum
引用类型(数据存放在堆里,引用存放在栈里):
- 所有的非简单类型
- 所有的浮点类型
- char
- class,array,delegate,interface
栈是一个内存数组,是“后进先出”的数据结构
- 某些类型变量的值
- 程序当前的执行环境
- 传递给方法的参数
堆是一块内存区域,可以任意顺序存入和移除
注意:
- 引用类型的引用也可以存放在堆里
- 引用类型的任何对象(实例),它所有的数据成员都存放在堆里,不论它是值类型还是引用类型
变量用来让程序存取数据
- 局部变量(形参)
- 实例变量(成员变量)(字段)
- 参数:值参数,引用参数,输出参数
- 数组元素
声明变量
- 给变量命名,并关联一种类型
- 让编译器分配一块内存