ref

ref:  当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。      

例如:

class RefExample   

  {        

   //使用ref返回的函数        

    static void Method(ref int i)      

   {         

    i = 44;    

     }        

   //普通函数      

   static int Sum(int j)        

   {          

      j = j + 1;       

      return j;   

      }        

    static void Main()     

    {           

     //使用ref返回的函数         

       int val = 0;      

       Method(ref val);      //当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。      

       Console.WriteLine(val);//44         

     //Console.WriteLine(Method(ref val)); 错误:Method是无返回值(void)函数            

      //普通函数       

      int x = 0;       

      Sum(x);       

      Console.WriteLine(x);//0       

      Console.WriteLine(Sum(x)); //1            

      Console.ReadKey();                  

}  

   }

 


ref参数通俗解释:
能够将一个变量带入一个方法中进行改变,改变完成后,再讲改变后的值带出方法。
ref参数要求在方法外必须为其赋值,而方法内可以不赋值。

 练习

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Program
  {
      static void Main(string[] args)
      {
          //使用方法来交换两个int类型的变量
          int n1 = 10;
          int n2 = 20;
 
          Test(ref n1, ref n2);
          Console.WriteLine(n1);
          Console.WriteLine(n2);
          Console.ReadKey();
 
      }
 
 
      public static void Test(ref int n1, ref int n2)
      {
          int temp = n1;
          n1 = n2;
          n2 = temp;
      }
  }

 

posted @   hao_1234_1234  阅读(240)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示