c#中的輸出引數有兩種:ref和out。
其實稱他們為輸出引數不是特別的準確,因為他們並不是像函式返回值一樣「輸出」乙個值,而是將原先存在的值進行編輯。
舉個例子(偽**):
1、一般引數
int i = 1;
int j = 2;
int add(int i, int j)
main
2、使用ref
int i = 1;
int j = 2;
void add(ref int i, ref int j)
main
兩個函式都是用來計算兩個值的和,不同的是一般引數傳遞進函式的是引數的拷貝值,
而ref和out直接修改記憶體中的資料。
對於值型別資料,ref和out相當於指標。
對於引用型別資料,就直接傳遞指向原資料的指標。
那麼ref和out有什麼區別呢?
區別在於對引數物件的初始化。
ref要求引數在傳遞之前進行初始化,而out要求在函式中對引數進行初始化,
所以,ref是個輸入輸出引數,而out是個輸出引數。
C 中的 Out 和 Ref 引數
out和ref引數 經常用來通過方法傳遞引數來獲取值,當您的方法不只有乙個返回值的時候,這兩個引數就發揮作用了。ref是傳遞引數的位址,out是返回值,兩者有一定的相同之處,不過也有不同點。在這篇文章裡,我將解釋如何在c 應用中使用這兩個引數。1 out 引數 out方法引數關鍵字使方法引用傳遞到方...
引用引數ref 輸出引數out
網上看到有些人說,當引數是物件時,ref可以不用寫,如下圖。這樣想其實是有誤的,加不加還是有一點區別的。這裡有必要解釋一下,當引數是對引用型別,即string或者類物件時,不用ref確實也能達到在方法中修改實參的目的。但是,加ref和不加ref還是有一定區別的。這裡我們先想一下值型別引數加ref的情...
C 的out引數和ref引數
剛學c 的時候看過out引數和ref引數的用法,但是一直沒有根據實際專案做過。今天寫webservice介面的時候用到了 本來我是寫乙個方法查詢乙個資料庫,返回乙個dataset給別人呼叫,沒問題,完成了 我的上篇部落格寫有 但是專案總是變化 的,有人要求同時將dataset的總記錄條數也返回給他們...