標籤:style blog http color 使用 資料 for html
在C#中,方法的參數類型有四種:
值參數:
所謂值參數,就是利用值向方法傳遞參數時,編譯器給實參的值做一份拷貝,並將此拷貝傳遞給該方法,這樣做的結果就是被調用的方法不會修改實參的值,保證了實際值的安全,在調用方法時,如果形參的類型時實值型別的話,必須保證實參的類型也是實值型別的資料.
例子:
public class MyClass{ public MyClass() { // //TODO: 在此處添加建構函式邏輯 // } public void ChangeValue(string value) { value = "Value is Changed!"; }}-------------------------------------string value = "Value";Response.Write(value+"<br/>");MyClass mc = new MyClass();mc.ChangeValue(value);Response.Write(value);
效果:
引用參數:
使用ref關鍵字可以使參數按照引用傳遞.在需要傳遞迴調用方法時,在方法中對參數所做的任何更改都將反映在該變數中,若使用ref關鍵字,則在方法定義和調用方法時都必須顯式使用ref關鍵字.
注意ref的使用!
例子:
public class MyClass{ public MyClass() { // //TODO: 在此處添加建構函式邏輯 // } public void ChangeValue(ref string value) { value = "Value is Changed!"; }}----------------------------- string value = "Value"; Response.Write(value+"<br/>"); MyClass mc = new MyClass(); mc.ChangeValue(ref value); Response.Write(value);
效果:
輸出參數:
使用out關鍵字來進行引用傳遞,這和ref關鍵字很累世,不同之處在於ref要求變數必須在傳遞之前就進行初始化,若使用out關鍵字,則方法定義和調用時都必須顯式的使用out關鍵字.
例子:
public class MyClass{ public MyClass() { // //TODO: 在此處添加建構函式邏輯 // } public void ChangeValue(out string value) { value = "Value is Changed!"; }}--------------------------------- string value ; MyClass mc = new MyClass(); mc.ChangeValue(out value); Response.Write(value);
效果:
數組型參數:
數組型參數就是聲明params關鍵字,用於指定在參數數目可變處採用參數的方法參數.
在方法聲明中的params關鍵字之後不允許任何其他參數,並且在方法聲明中只允許一個params關鍵字.
例子:
public class MyClass{ public MyClass() { // //TODO: 在此處添加建構函式邏輯 // } public void ChangeValue(params string[] value) { foreach (string s in value) { HttpContext.Current.Response.Write(s + "<br/>"); } }}------------------------------------------ string value1 = "Value1"; string value2 = "Value2"; MyClass mc = new MyClass(); mc.ChangeValue(value1, value2);
效果:
另:
數群組類型的參數:
數群組類型是參考型別的資料,所以也應歸類於參考型別.
public class MyClass{ public MyClass() { // //TODO: 在此處添加建構函式邏輯 // } public void ChangeValue(string[] value) { value[0] = "This is Value0,Changed!"; }}---------------------------------------------- string[] value = { "Value1", "Value2" }; Response.Write(value[0] + "<br/>"); MyClass mc = new MyClass(); mc.ChangeValue(value); Response.Write(value[0] + "<br/>");
效果:
注意:
ref和out的區別:(ref初始化)
傳遞到ref參數的參數必須最先初始化,而out的參數在傳遞之前不必初始化.
http://www.cnblogs.com/oneword/archive/2009/08/19/1549464.html