c#中ref和out的用法

[csharp]  view plain copy
  1. 1、out必须在函数体内初始化,在外面初始化没意义。也就是说,out型的参数在函数体内不能得到外面传进来的初始值。  
  2. 2、ref必段在函数体外初始化。  
  3. 3、两都在函数体的任何修改都将影响到外面。  
  4.   
  5. 例:  
  6.   
  7. using System;  
  8.   
  9. namespace ConsoleApplication1  
  10. {  
  11.  class C  
  12.  {  
  13.   public static void reffun(ref string str)  
  14.   {  
  15.    str += " fun";  
  16.   }  
  17.   
  18.   public static void outfun(out string str)  
  19.   {  
  20.    str = "test";     //必须在函数体内初始  
  21.    str += " fun";  
  22.   }  
  23.  }  
  24.   
  25.  class Class1  
  26.  {  
  27.   [STAThread]  
  28.   static void Main(string[] args)  
  29.   {  
  30.    string test1 = "test";  
  31.    string test2;                  //没有初始  
  32.    C.reffun( ref test1 );     //正确  
  33.    C.reffun( ref test2 );     //错误,没有赋值使用了test2  
  34.    C.outfun( out test1 );    //正确,但值test传进去  
  35.    C.outfun( out test2 );    //正确  
  36.   
  37.    Console.Read();  
  38.   }  
  39.  }  
  40. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值