c#程式設計方法引數:形式引數與實際引數和引數傳遞機制
方法引數的本質是為了在呼叫者和方法之間實現資料交換, 是方法介面的重要組成部分。
呼叫者在呼叫方法時,需要注意方法引數的個數、型別、位 置以及傳遞方向等規定。
## 形式引數
形式引數簡稱為形參,指的是方法定義時方法頭中的形式參 數,這些形式引數在方法未被呼叫時不佔據記憶體的儲存單元, 只為了描述方法內的處理機制,其目的是用來接收呼叫該方法 時傳入的引數。
形式引數是屬於方法本身的變數,其初值**於方法的呼叫, 只有在程式執行過程中呼叫了方法,形參才有可能得到具體的 值,並參與運算,執行方法的功能。
實際引數
呼叫方法時,實際傳入到方法的引數稱為實際引數。實際參 數必須有乙個確定的值,它可以是常量、變數、表示式,甚至 是另乙個方法呼叫的返回值。
實參的傳遞以形參為依據,其型別、數目、位置都要與形參 定義相符合。
如果實際引數和形式引數的定義不一致,則在呼叫方法時會 出現編譯錯誤或者邏輯錯誤。
同時,實際引數還必須與方法定義時形式引數的數學、物理 等意義相同,否則程式執行也會出現邏輯錯誤。
引數傳遞機制
根據引數傳遞機制的不同,c#方法的形式引數分為四種:值形參、引用形參、輸出形參以及形引數組,通過在形參定義 時新增不同的引數描述符來表示。
1. 值形參
宣告時不帶修飾符的形參是值形參。
乙個值形參對應於方法的乙個區域性變數,只是它的初始值來 自該方法呼叫所提供的相應實參。
當形參是值形參時,要求方法呼叫中的對應實參必須可以隱 式轉換為形參的型別。
2. 引用形參
用 ref 修飾符宣告的形參是引用形參。
引用形參所表示的儲存位置就是方法呼叫時給出的那個實參 的儲存位置。
當形參為引用形參時,方法呼叫中的對應實參必須由關鍵字 ref 並後接乙個與形參型別相同的變數組成。變數在可以作為 引用形參傳遞之前,必須先明確賦值。
在採用引用形參的方法中,多個名稱可能表示同一儲存位置。
3. 輸出形參
用out修飾符宣告的形參是輸出形參。
輸出形參所表示的儲存位置就是在該方法呼叫中作為實參給 出的那個變數所表示的儲存位置。
輸出引數可用於從方法向呼叫者傳遞資料。
當形參為輸出形參時,方法呼叫中的相應實參必須由關鍵字 out 並後接乙個與形參型別相同的變數組成。
變數在可以作為輸出形參傳遞之前不一定需要明確賦值,但 是進行方法呼叫後,該變數將會被明確賦值。
在方法內部,輸出形參最初被認為是未賦值的,因而必須在 使用它的值之前明確賦值,並且在方法返回之前,該方法的每 個輸出形參都必須被明確賦值。
static
intsearch
(int x,
int y,
int z,
outint max)
if(x>z)
if(y>z)
min=x;
max=z;
return min;
//由方法返回值帶回最小值,輸出形參帶回最大值
}static
void
main()
,min is "
,max,min)
;}
C 方法引數 params
1.上測試 using system using system.collections.generic using system.text using system.threading namespace leaf console.writeline nb.傳2個引數 testmethod 1,2 ...
C 方法引數 值引數,引用引數,輸出引數
使用值引數,通過複製實參的值到形參的方式,把資料傳遞到方法,方法被呼叫的時候,系統做如下操作 在棧中為形參分配空間 複製實參到形參。注意 乙個值引數的實參不一定是變數,它可以是任何能夠計算成相應資料型別的表示式。在把變數用作實參之前,變數必須被賦值 除非是輸出引數,這個稍後介紹 對於引用型別,變數可...
c 方法過載,可選引數,命名引數。
其實這裡沒什麼可說哦,c 的語法大同小異。先看一段 方法過載,可選引數兩種技術一起使用,很難一眼看出最終呼叫的是那個方法。只有在所有引數 可選引數除外 都恰好有乙個實參,而且該引數具有相容型別的情況下,才說乙個呼叫適用於乙個方法。雖然這限制了可呼叫方法的數量,但不足唯一性的表示方法。為了進一步區分方...