变量引用,别名
代码
int num = 0; ref int local = ref num;
这是C# 7.0引入的引用局部变量(ref local)语法。
行代码的意思是:
-
local变成了num的引用别名 -
对
local的任何操作都会直接作用在原始的num变量上 -
它们指向同一个内存地址
-
示例说明
int num = 10; // 创建num的引用别名 ref int local = ref num; Console.WriteLine($"num: {num}, local: {local}"); // 输出: num: 10, local: 10 // 通过local修改值 local = 20; Console.WriteLine($"num: {num}, local: {local}"); // 输出: num: 20, local: 20 // 可以看到num的值也被改变了 // 直接修改num num = 30; Console.WriteLine($"num: {num}, local: {local}"); // 输出: num: 30, local: 30 // local的值也同步变化了
-
与普通赋值的区别
int num = 10; // 普通赋值 - 值拷贝 int copy = num; copy = 20; // num还是10 // 引用赋值 - 引用同一个内存位置 ref int reference = ref num; reference = 20; // num也变成20
主要用途
-
性能优化:避免大型结构体的拷贝
-
数组元素操作:直接引用数组中的元素
-
方法间传递引用:在多个方法间共享变量引用
数组操作示例
int[] numbers = {1, 2, 3, 4, 5}; // 获取第三个元素的引用 ref int thirdElement = ref numbers[2]; thirdElement = 100; // 直接修改数组元素 Console.WriteLine(string.Join(", ", numbers)); // 输出: 1, 2, 100, 4, 5

浙公网安备 33010602011771号