一.值类型和引用类型
所有的值类型和引用类型的引用都存在“栈”中
1.值类型
命名空间:System.ValueType
值类型数据储存所在的内存区域成为栈
值类型主要包括基本数据类型和枚举类型,结构
值类型的赋值原理:
在栈上复制的真实值
实例代码:
//张浩和李明去年身高都是170cm,今年李明长到了180cm,张浩没有变化, //输出去年和今年两人身高 ; int lmheigt = zhheight; Console.WriteLine("去年张浩身高是{0}\t李明的身高是{1}", zhheight, lmheigt); lmheigt = ; Console.WriteLine("今年张浩身高是{0}\t李明的身高是{1}", zhheight, lmheigt);
2.引用类型
命名空间:System.Onject
引用类型主要包括数组,类和接口,字符串等
储存在栈和堆中
堆上储存的真实对象本身真实对象的属性
示例代码:
,}; int[] lmArray = zhArray; Console.WriteLine(],zhArray[], lmArray[],lmArray[]); Console.WriteLine("================我是高贵的分割线===================="); lmArray[] = ; lmArray[] = ; Console.WriteLine(], zhArray[], lmArray[], lmArray[]); //解决: , }; ]; ; i < zhArray.Length; i++) { lmArray[i] = zhArray[i]; } Console.WriteLine(], zhArray[], lmArray[], lmArray[]); Console.WriteLine("================我是高贵的分割线======================"); lmArray[] = ; lmArray[] = ; Console.WriteLine(], zhArray[], lmArray[], lmArray[]);
3.细分值类型和引用类型
类别 | 描述 | |
值类型 | 基本数据类型 | 整型:int |
&长整型:long | ||
浮点型:float 双精度:double |
||
字符型:char | ||
波尔型:bool | ||
枚举类型 | 枚举:enum | |
结构类型 | 结构:strut | |
引用类型 | 类 | 基类:System.Object |
字符串:string | ||
自定义类:class | ||
接口 | 接口:interface | |
数组 | 数组:int[],string[] |
二.结构
1.定义:
语法:
访问修饰符 struct 结构名 { //结构体 }
特点:
结构中可以有字段,也可以有方法
定义时,结构中的字段不能被赋初值
示例代码:
//定一个自己的结构体 public struct MyPointer { //成员 属性 结构体的成员变量不能有初值 private int age; public int Age { get { return age; } set { age = value; } } //结构体中可以定义方法 public void show() { } }
2.使用
可以不用new。直接定义结构的对象即可
声明结构的对象后,必须给结构的成员赋初值
示例代码:
static void Main(string[] args) { //使用结构体 MyPointer pointer=new MyPointer(); pointer.Age = ; pointer.show(); }
3.使用经验
不推荐使用(结构用得越多所消耗的存储空间也越多)
三.构造函数
示例代码:
public class Player { //无参 private Player() { //归类:方法(方法)/函数 (面向过程) } //有参 public Player(string name) { //归类:方法(方法)/函数 (面向过程) } }