知识点一:值类型 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; // ❌ 编译报错
适用场景: 程序中不变的数学常数、缓存大小、固定配置值。

知识点三:数据类型转换(今天的绝对核心)

共四种显式转换 + 一种隐式转换。
  1. 强制转换 (目标类型)‘’、
float aa = 10.2f; int bb = (int)aa; // 结果10,直接截断小数,不四舍五入
  1. Parse 方法(字符串→数值)
string cc = "10"; int dd = int.Parse(cc); // 10 double.Parse("3.14"); // 转double同理 bool.Parse("true"); // 转bool // ⚠️ 字符串不能转时会抛异常!
  1. 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 返回 0,Parse 会崩溃
  1. TryParse 安全转换(强烈推荐)
string ff = "ss"; bool success = int.TryParse(ff, out int result); // success = false,result = 0(转换失败不崩)
流程: 成功返回 true,结果存于 out 变量;失败返回 false,out 变量为默认值。
  1. 隐式转换
int al = 10; long bl = al; // int→long,小范围自动放大,无需指令 long cl = 10; // int d = cl; // ❌ 大→小必须显式转换
规则: 小范围 → 大范围自动执行;大范围 → 小范围必须手动。
  1. 字符串与数字互转(简易方法)
// 数字转字符串:最简单的就是拼接 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; // ❌ 编译报错
适用场景: 程序中不变的数学常数、缓存大小、固定配置值。

知识点三:数据类型转换(今天的绝对核心)
共四种显式转换 + 一种隐式转换。
  1. 强制转换 (目标类型)
float aa = 10.2f; int bb = (int)aa; // 结果10,直接截断小数,不四舍五入
  1. Parse 方法(字符串→数值)
string cc = "10"; int dd = int.Parse(cc); // 10 double.Parse("3.14"); // 转double同理 bool.Parse("true"); // 转bool // ⚠️ 字符串不能转时会抛异常!
  1. 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 返回 0,Parse 会崩溃
  1. TryParse 安全转换(强烈推荐)
string ff = "ss"; bool success = int.TryParse(ff, out int result); // success = false,result = 0(转换失败不崩)
流程: 成功返回 true,结果存于 out 变量;失败返回 false,out 变量为默认值。
  1. 隐式转换
int al = 10; long bl = al; // int→long,小范围自动放大,无需指令 long cl = 10; // int d = cl; // ❌ 大→小必须显式转换
规则: 小范围 → 大范围自动执行;大范围 → 小范围必须手动。
  1. 字符串与数字互转(简易方法)
// 数字转字符串:最简单的就是拼接 string bbbb = "" + 10; // "10" aaaa.ToString(); // 用ToString()方法 // 字符串转数字 int.Parse("10"); Convert.ToInt16("10"); int.TryParse("10", out int r);
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐