Synchronization of old projects
Part1
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
#region 知识点一 变量类型的复习
|
||||
//无符号整形
|
||||
//byte b = 1;
|
||||
//ushort us = 1;
|
||||
//uint ui = 1;
|
||||
//ulong ul = 1;
|
||||
|
||||
//有符号整形
|
||||
//sbyte sb = -1;
|
||||
//short s = -1;
|
||||
//int i = -1;
|
||||
//long l = -1;
|
||||
|
||||
//浮点型
|
||||
//float f = 1f;
|
||||
//double d = 1.1;
|
||||
//decimal dec = 1.1m;
|
||||
|
||||
//特殊类型
|
||||
//bool bo = true;
|
||||
//char c = 'a';
|
||||
//string str = "string";
|
||||
|
||||
//复杂类型
|
||||
//enum 枚举
|
||||
//数组(一维、二维、交错)
|
||||
|
||||
//把以上 学过的变量类型 分成 值类型和引用类型
|
||||
//引用类型:string,数组,类(未学习)
|
||||
//值类型:其他、结构体(未学习)
|
||||
#endregion
|
||||
|
||||
#region 知识点二 值类型和引用类型的区别
|
||||
//1.使用上的区别
|
||||
//值类型
|
||||
int a = 10;
|
||||
//引用类型
|
||||
int[] arr = new int[] { 1, 2, 3, 4 };
|
||||
|
||||
|
||||
//声明了一个b让其等于之前的a
|
||||
int b = a;
|
||||
//声明了一个arr2让其等于之前的arr
|
||||
int[] arr2 = arr;
|
||||
Console.WriteLine("a={0},b={1}",a,b);
|
||||
Console.WriteLine("arr[0]={0},arr2[0]={1}", arr[0], arr2[0]);
|
||||
|
||||
b = 20;
|
||||
arr2[0] = 5;
|
||||
Console.WriteLine("修改了b和arr2[0]后:");
|
||||
Console.WriteLine("a={0},b={1}", a, b);
|
||||
Console.WriteLine("arr[0]={0},arr2[0]={1}", arr[0], arr2[0]);
|
||||
|
||||
//值类型 在相互赋值时,是将值进行复制,互不影响,他变我不变
|
||||
|
||||
//引用类型 在相互赋值时,是将地址进行复制,互相关联,他变我也变
|
||||
|
||||
//2.为什么有以上区别
|
||||
//值类型和应用类型 存储在的内存区域是不同的 存储方式是不同的
|
||||
//值类型 直接存储在 栈内存 中 -- 系统分配,自动回收,小而快
|
||||
//引用类型 变量本身存储在 栈内存 中,实际数据存储在 堆内存 中 -- 手动分配,手动回收,大而慢
|
||||
//string虽然也是引用类型 但它有值类型的特性,因为它不可变
|
||||
#endregion
|
||||
Reference in New Issue
Block a user