程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> ref和out區別

ref和out區別

編輯:C#入門知識

方法參數上的   ref   方法參數關鍵字使方法引用傳遞到方法的同一個變量。當控制傳遞回調用方法時,在方法中對參數所做的任何更改都將反映在該變量中。  
   
  若要使用   ref   參數,必須將參數作為   ref   參數顯式傳遞到方法。ref   參數的值被傳遞到   ref   參數。  
   
  傳遞到   ref   參數的參數必須最先初始化。將此方法與   out   參數相比,後者的參數在傳遞到   out   參數之前不必顯式初始化。  
   
  屬性不是變量,不能作為   ref   參數傳遞。  
   
  如果兩種方法的聲明僅在它們對   ref   的使用方面不同,則將出現重載。但是,無法定義僅在   ref   和   out   方面不同的重載。例如,以下重載聲明是有效的:  
   
  class   MyClass    
  {  
        public   void   MyMethod(int   i)   {i   =   10;}  
        public   void   MyMethod(ref   int   i)   {i   =   10;}  
  }  
  但以下重載聲明是無效的:  
   
  class   MyClass    
  {  
        public   void   MyMethod(out   int   i)   {i   =   10;}  
        public   void   MyMethod(ref   int   i)   {i   =   10;}  
  }  
方法參數上的   out   方法參數關鍵字使方法引用傳遞到方法的同一個變量。當控制傳遞回調用方法時,在方法中對參數所做的任何更改都將反映在該變量中。  
  當希望方法返回多個值時,聲明   out   方法非常有用。使用   out   參數的方法仍然可以返回一個值。一個方法可以有一個以上的   out   參數。  
  若要使用   out   參數,必須將參數作為   out   參數顯式傳遞到方法。out   參數的值不會傳遞到   out   參數。  
  不必初始化作為   out   參數傳遞的變量。然而,必須在方法返回之前為   out   參數賦值。  
  屬性不是變量,不能作為   out   參數傳遞。  
  如果兩個方法的聲明僅在   out   的使用方面不同,則會發生重載。不過,無法定義僅在   ref   和   out   方面不同的重載。例如,以下重載聲明是有效的:  
  class   MyClass    
  {  
        public   void   MyMethod(int   i)   {i   =   10;}  
        public   void   MyMethod(out   int   i)   {i   =   10;}  
  }  
  而以下重載聲明是無效的:  
  class   MyClass    
  {  
        public   void   MyMethod(out   int   i)   {i   =   10;}  
        public   void   MyMethod(ref   int   i)   {i   =   10;}  
  }

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved