c#中的方法是類的成員,可以用來實現類或者物件的操作和計算,下面列出幾點在方法中要注意的部分。
1.方法的結構。包含了方法修飾符,返回值型別,方法名,形參和方法體。其中方法名,形參的個數,形參的型別,形參的傳遞模式(值,引用,輸出)組成方法的簽名。若是要實現方法的過載,必須保證方法的簽名是唯一的,即這樣就實現了方法名可以重複使用的目的。2.對於方法呼叫的理解。在乙個類中或者乙個方法中呼叫另外乙個方法,實際上就是被呼叫的方法入棧,同時程式的控制權轉移到了該方法上。而方法的return語句實際上是返回程式的控制權,方法出棧。即使返回值型別為void,也會隱式的加上return void來交還程式的控制權。
3.方法的形參分類。
(1)值引數。這是預設形參,不加任何修飾符的形參就是值引數。值引數實際上就是將實參的值來初始化形參的值,在棧上為形參分配了一段記憶體空間,來建立形參的本地變數。所以說實參和形參擁有不同的儲存空間,對於形參的修改並不會影響到實參。
(2)引用引數。形式是在函式宣告和呼叫時都要在引數前加上ref修飾符,表示引用。引用引數的本質是形參稱為實參的別名。就是說在函式呼叫時,編譯器不會給形參分配記憶體空間,實參和形參都會指向記憶體的同乙個位置。引用傳遞中,形參的改變會影響到實參。在使用引用引數的時候,要求在函式呼叫之前,必須是明確賦值的,而且必須是變數,不能是表示式。
(3)輸出引數。形式是在函式宣告和呼叫是都要在引數前面加上out修飾符。輸出引用也不會給形參單獨分配記憶體空間,實參和形參都指向同一位置,這一點和引用傳遞是一致的。區別在**呢?輸出引數要求在函式呼叫之前,該引數沒有被賦值,同時在函式中,輸出引數必須執行賦值操作。輸出傳遞用在方法需要多個返回值的時候。
(4)引數陣列。形式是在宣告的是時候是需要params修飾符的,但是在呼叫的時候不加。用處就是當乙個方法的形參個數不定的時候使用。需要注意的是:
a.形參列表中只能有乙個引數陣列。
b.若有引數陣列必須是所有引數的最後乙個。
c.在呼叫的時候,對應該引數陣列的實參型別是一致的。
d.呼叫的時候可以是多個實參,也可以是乙個陣列作為實參。
4.命名引數。命名引數不是引數的新型別,只是為了在使用方法的時候使引數更明確的辦法。
5.可選引數。可選引數也不是引數的新型別,也是為了靈活使用引數的辦法。在定義函式的時候給形參賦乙個預設值,那麼在呼叫的時候,若是省去該對應實參,那麼該引數就會附上預設值。使用的時候要保證唯一性,不能有引起歧義的地方。
6.虛方法,重寫方法,外部方法,密封方法,抽象方法,擴充套件方法這些統統沒有。。。。
常用快捷方法 method
1 求陣列最大 小值 const arr 0,1,2,3,4 const prim math.min max arr min 0 max 4 2 陣列快速去重 let arr 3,5,2,2,5,5 let unique new set arr 3,5,2 3 陣列內容判斷 some 陣列中有值與條...
Method類的常用方法
method getmethod string name,class parametertypes.根據方法名和引數獲得公共方法 method getmethod 獲得所有的公共方法 method getdeclaredmethod string name,class parametertypes ...
關於Method類的invoke方法
import j a.lang.reflect.method public class invoketester public string echo string mesg public static void main string args throws exception method類的i...