.net中的ref與out的區別和使用總結


ref和out的使用及區別

  1.  ref的使用:使用ref進行參數的傳遞時,該參數在創建時,必須設置其初始值,且ref側重於修改;

  2. out的使用: 采用out參數傳遞時,該參數在創建時,可以不設置初始值,但是在方法中必須初始化,out側重於輸出;

注釋:當希望方法返回多個值時,可以用out,並且一個方法中的參數可以有一個或多個out參數;使用 out 參數,必須將參數作為 out 參數顯式傳遞到方法中,但是out 參數的值不會被傳遞到 方法中,且屬性不是變量,不能作為 out 參數傳遞。

    ref是有進有出,而out是只出不進。

舉例如下:

out的使用

 

   class Program
    {
        static void Main(string[] args)
        {

 

     string tmp;    //先聲明,但不初始化

 

     User _user=new User();      

 

     _user.Name(out tmp);        //調用Name方法

 

              Console.WriteLine("{0}",tmp); //這時tmp的值為“在這里面賦值了”

 

              Console.ReadKey(true);

 

   }

 

     }

 

  class User{

 

    public void Name(out string tmps)

 

           {

 

       tmps="在這里面賦值了";

 

           }

 

      }

 

       使用out結果輸出: 在這里面賦值了

 

 ref的使用

 

   class Program
    {
        static void Main(string[] args)
        {

 

     string tmp="傳值之前";    //聲明並初始化        這時如果輸出tmp值為"傳值之前"

 

          User _user=new User();

 

              _user.Name(ref tmp);

 

              Console.WriteLine("{0}",tmp);

 

              Console.ReadKey(true);

 

        }

 

    }

 

    class User {

 

         public void Name(ref string tmps)

 

         {

 

              tmps="傳值之后";

 

         }

 

    }

 

 

    使用ref方法結果輸出:傳值之后

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM