四種C#參數(shù)類型簡介
C#參數(shù)類型有四種:
值類型
引用類型
輸出類型
數(shù)組型參數(shù)
C#參數(shù)類型(1):值參數(shù)
所謂值參數(shù),就是利用值向方法傳遞參數(shù)時(shí),編譯程序給實(shí)參的值做一份拷貝,并將此拷貝傳遞給該方法,這樣做的結(jié)果就是被調(diào)用的方法不會(huì)修改實(shí)參的值,保證了實(shí)際值的安全,在調(diào)用方法時(shí),如果形參的類型時(shí)值類型的話,必須保證實(shí)參的類型也是值類型的數(shù)據(jù).
例子:
- public class MyClass
- {
- public MyClass()
- {
- //
- //TODO: 在此處添加構(gòu)造函數(shù)邏輯
- //
- }
- 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#參數(shù)類型(2):引用參數(shù)
使用ref關(guān)鍵字可以使參數(shù)按照引用傳遞.在需要傳遞回調(diào)用方法時(shí),在方法中對(duì)參數(shù)所做的任何更改都將反映在該變量中,若使用ref關(guān)鍵字,則在方法定義和調(diào)用方法時(shí)都必須顯式使用ref關(guān)鍵字.
注意ref的使用!
例子:
- public class MyClass
- {
- public MyClass()
- {
- //
- //TODO: 在此處添加構(gòu)造函數(shù)邏輯
- //
- }
- 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#參數(shù)類型(3):輸出參數(shù)
使用out關(guān)鍵字來進(jìn)行引用傳遞,這和ref關(guān)鍵字很累世,不同之處在于ref要求變量必須在傳遞之前就進(jìn)行初始化,若使用out關(guān)鍵字,則方法定義和調(diào)用時(shí)都必須顯式的使用out關(guān)鍵字.
例子:
- public class MyClass
- {
- public MyClass()
- {
- //
- //TODO: 在此處添加構(gòu)造函數(shù)邏輯
- //
- }
- public void ChangeValue(out string value)
- {
- value = "Value is Changed!";
- }
- }
---------------------------------
- string value ;
- MyClass mc = new MyClass();
- mc.ChangeValue(out value);
- Response.Write(value);
效果:
C#參數(shù)類型(4):數(shù)組型參數(shù)
數(shù)組型參數(shù)就是聲明params關(guān)鍵字,用于指定在參數(shù)數(shù)目可變處采用參數(shù)的方法參數(shù).
在方法聲明中的params關(guān)鍵字之后不允許任何其他參數(shù),并且在方法聲明中只允許一個(gè)params關(guān)鍵字.
例子:
- public class MyClass
- {
- public MyClass()
- {
- //
- //TODO: 在此處添加構(gòu)造函數(shù)邏輯
- //
- }
- 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);
效果:
另:
數(shù)組類型的參數(shù):
數(shù)組類型是引用類型的數(shù)據(jù),所以也應(yīng)歸類于引用類型.
- public class MyClass
- {
- public MyClass()
- {
- //
- //TODO: 在此處添加構(gòu)造函數(shù)邏輯
- //
- }
- 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的區(qū)別:
傳遞到ref參數(shù)的參數(shù)必須***初始化,而out的參數(shù)在傳遞之前不必初始化.
四種C#參數(shù)類型就總結(jié)到這里,希望對(duì)大家有用。
【編輯推薦】