变量引用,别名

代码

   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

主要用途

  1. 性能优化:避免大型结构体的拷贝

  2. 数组元素操作:直接引用数组中的元素

  3. 方法间传递引用:在多个方法间共享变量引用

数组操作示例

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

 

posted @ 2025-11-21 11:24  家煜宝宝  阅读(4)  评论(0)    收藏  举报