四種C#參數類型簡介
C#參數類型有四種:
值類型
引用類型
輸出類型
數組型參數
C#參數類型(1):值參數
所謂值參數,就是利用值向方法傳遞參數時,編譯程序給實參的值做一份拷貝,并將此拷貝傳遞給該方法,這樣做的結果就是被調用的方法不會修改實參的值,保證了實際值的安全,在調用方法時,如果形參的類型時值類型的話,必須保證實參的類型也是值類型的數據.
例子:
- public class MyClass
- {
- public MyClass()
- {
- //
- //TODO: 在此處添加構造函數邏輯
- //
- }
- public void ChangeValue(string value)
- {
- value = "Value is Changed!";
- }
- }
-------------------------------------
- string value = "Value";
- Response.Write(value+"
");- MyClass mc = new MyClass();
- mc.ChangeValue(value);
- Response.Write(value);
效果:
C#參數類型(2):引用參數
使用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+"
");- MyClass mc = new MyClass();
- mc.ChangeValue(ref value);
- Response.Write(value);
效果:
C#參數類型(3):輸出參數
使用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);
效果:
C#參數類型(4):數組型參數
數組型參數就是聲明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 + "
");- }
- }
- }
------------------------------------------
- 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] + "
");- MyClass mc = new MyClass();
- mc.ChangeValue(value);
- Response.Write(value[0] + "
");
效果:
注意:
ref和out的區別:
傳遞到ref參數的參數必須***初始化,而out的參數在傳遞之前不必初始化.
四種C#參數類型就總結到這里,希望對大家有用。
【編輯推薦】