C 返回多個引數 ref及out

2021-09-06 23:21:31 字數 1099 閱讀 3504

out關鍵字會導致引數通過引用來傳遞。這與 ref 關鍵字類似,不同之處在於 ref 要求變數必須在傳遞之前進行初始化。若要使用out引數,方法定義和呼叫方法都必須顯式使用out關鍵字。例如:

class outexample static void main() }

儘管作為out引數傳遞的變數不需要在傳遞之前進行初始化,但需要呼叫方法以便在方法返回之前賦值。

refout關鍵字在執行時的處理方式不同,但在編譯時的處理方式相同。因此,如果乙個方法採用ref引數,而另乙個方法採用out引數,則無法過載這兩個方法。例如,從編譯的角度來看,以下**中的兩個方法是完全相同的,因此將不會編譯以下**:

class cs0663_example

public void samplemethod(ref int i)

}

但是,如果乙個方法採用refout引數,而另乙個方法不採用這兩類引數,則可以進行過載,如下所示:

class refoutoverloadexample public void samplemethod(out int i) }

屬性不是變數,因此不能作為out引數傳遞。

有關傳遞陣列的資訊,請參見使用 ref 和 out 傳遞陣列。

當希望方法返回多個值時,宣告out方法很有用。使用out引數的方法仍然可以將變數用作返回型別(請參見 return),但它還可以將乙個或多個物件作為out引數返回給呼叫方法。此示例使用out在乙個方法呼叫中返回三個變數。請注意,第三個引數所賦的值為 null。這樣便允許方法有選擇地返回值。

class outreturnexample

static void main()

}

C 返回多個引數 ref及out

out關鍵字會導致引數通過引用來傳遞。這與 ref 關鍵字類似,不同之處在於 ref 要求變數必須在傳遞之前進行初始化。若要使用out引數,方法定義和呼叫方法都必須顯式使用out關鍵字。例如 class outexample static void main 儘管作為out引數傳遞的變數不需要在傳遞...

C 返回多個引數 ref及out

out關鍵字會導致引數通過引用來傳遞。這與 ref 關鍵字類似,不同之處在於 ref 要求變數必須在傳遞之前進行初始化。若要使用out引數,方法定義和呼叫方法都必須顯式使用out關鍵字。例如 class outexample static void main 儘管作為out引數傳遞的變數不需要在傳遞...

C 中ref引數及out引數對比

ref 關鍵字和out關鍵字均會導致引數通過引用來傳遞 相同點1 這是兩者的共同點。通過引用傳遞引數,會使方法中對引數所做的任何修改都將反映在該變數中。兩者還有乙個共同點,那就是 若要使用 ref 引數或out引數,則方法定義和呼叫方法都必須顯式使用 ref 關鍵字或out關鍵字 相同點2 那兩者有...