02类型转换与值类型引用类型(C#上位机方向基础夯实)
知识点一值类型 vs 引用类型的赋值差异核心结论值类型赋值是复制数据引用类型赋值是复制地址。代码验证// 值类型int int a 10; int b a; // 把10拷贝一份给b a 20; Console.WriteLine(b); // 10 —— a的修改不影响b // 值类型结构体 Rect juxing; juxing.length 100; juxing.width 200; Console.WriteLine(矩形的面积为: juxing.length * juxing.width);引用类型课上提到但还没细讲· string特殊引用类型· class类型· 数组等集合· 赋值后两个变量指向同一个对象改一个另一个也变知识点二const 常量核心结论 const 修饰的变量必须在声明时赋值之后永远不能修改。const float PI 3.1415926f; // 声明即锁定 // PI 3.14; // ❌ 编译报错适用场景 程序中不变的数学常数、缓存大小、固定配置值。知识点三数据类型转换今天的绝对核心共四种显式转换 一种隐式转换。强制转换 (目标类型)‘’、float aa 10.2f; int bb (int)aa; // 结果10直接截断小数不四舍五入Parse 方法字符串→数值string cc 10; int dd int.Parse(cc); // 10 double.Parse(3.14); // 转double同理 bool.Parse(true); // 转bool // ⚠️ 字符串不能转时会抛异常Convert 万能转换类string ee 10; long eee Convert.ToInt64(ee); // 字符串→long Convert.ToString(10); // 任意类型→字符串 Convert.ToBoolean(true); // →true Convert.ToDouble(3.14); // →3.14 Convert.ToInt32(3.7); // →4四舍五入Convert vs 强制转换 差异· (int)3.7 → 3截断· Convert.ToInt32(3.7) → 4四舍五入· Convert 遇到 null 返回 0Parse 会崩溃TryParse 安全转换强烈推荐string ff ss; bool success int.TryParse(ff, out int result); // success falseresult 0转换失败不崩流程 成功返回 true结果存于 out 变量失败返回 falseout 变量为默认值。隐式转换int al 10; long bl al; // int→long小范围自动放大无需指令 long cl 10; // int d cl; // ❌ 大→小必须显式转换规则 小范围 → 大范围自动执行大范围 → 小范围必须手动。字符串与数字互转简易方法// 数字转字符串最简单的就是拼接 string bbbb 10; // 10 aaaa.ToString(); // 用ToString()方法 // 字符串转数字 int.Parse(10); Convert.ToInt16(10); int.TryParse(10, out int r);知识点一值类型 vs 引用类型的赋值差异核心结论 值类型赋值是复制数据引用类型赋值是复制地址。代码验证// 值类型int int a 10; int b a; // 把10拷贝一份给b a 20; Console.WriteLine(b); // 10 —— a的修改不影响b // 值类型结构体 Rect juxing; juxing.length 100; juxing.width 200; Console.WriteLine(矩形的面积为: juxing.length * juxing.width);引用类型课上提到但还没细讲· string特殊引用类型· class类型· 数组等集合· 赋值后两个变量指向同一个对象改一个另一个也变知识点二const 常量核心结论 const 修饰的变量必须在声明时赋值之后永远不能修改。const float PI 3.1415926f; // 声明即锁定 // PI 3.14; // ❌ 编译报错适用场景 程序中不变的数学常数、缓存大小、固定配置值。知识点三数据类型转换今天的绝对核心共四种显式转换 一种隐式转换。强制转换 (目标类型)float aa 10.2f; int bb (int)aa; // 结果10直接截断小数不四舍五入Parse 方法字符串→数值string cc 10; int dd int.Parse(cc); // 10 double.Parse(3.14); // 转double同理 bool.Parse(true); // 转bool // ⚠️ 字符串不能转时会抛异常Convert 万能转换类string ee 10; long eee Convert.ToInt64(ee); // 字符串→long Convert.ToString(10); // 任意类型→字符串 Convert.ToBoolean(true); // →true Convert.ToDouble(3.14); // →3.14 Convert.ToInt32(3.7); // →4四舍五入Convert vs 强制转换 差异· (int)3.7 → 3截断· Convert.ToInt32(3.7) → 4四舍五入· Convert 遇到 null 返回 0Parse 会崩溃TryParse 安全转换强烈推荐string ff ss; bool success int.TryParse(ff, out int result); // success falseresult 0转换失败不崩流程 成功返回 true结果存于 out 变量失败返回 falseout 变量为默认值。隐式转换int al 10; long bl al; // int→long小范围自动放大无需指令 long cl 10; // int d cl; // ❌ 大→小必须显式转换规则 小范围 → 大范围自动执行大范围 → 小范围必须手动。字符串与数字互转简易方法// 数字转字符串最简单的就是拼接 string bbbb 10; // 10 aaaa.ToString(); // 用ToString()方法 // 字符串转数字 int.Parse(10); Convert.ToInt16(10); int.TryParse(10, out int r);