C# 参考之方法参数关键字:params、ref及out
生活随笔
收集整理的這篇文章主要介紹了
C# 参考之方法参数关键字:params、ref及out
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果在為方法聲明參數時未使用 ref 或 out,則該參數可以具有關聯的值。可以在方法中更改該值,但當控制傳遞回調用過程時,不會保留更改的值。通過使用方法參數關鍵字,可以更改這種行為。
params
params 關鍵字可以指定在參數數目可變處采用參數的方法參數。
示例:
字面意思比較難懂,所以看示例很有用。
//?keywords_params.csusing?System;
class?App
{
????public?static?void?UseParams(params?object[]?list)
????{
????????for?(int?i?=?0;?i?<?list.Length;?i++)
????????{
????????????Console.WriteLine(list[i]);
????????}
????}
????static?void?Main()
????{
????????//?一般做法是先構造一個對象數組,然后將此數組作為方法的參數
????????object[]?arr?=?new?object[3]?{?100,?'a',?"keywords"?};
????????UseParams(arr);
????????//?而使用了params修飾方法參數后,我們可以直接使用一組對象作為參數
????????//?當然這組參數需要符合調用的方法對參數的要求
????????UseParams(100,?'a',?"keywords");
????????Console.Read();
????}
}
ref
ref 關鍵字使參數按引用傳遞。其效果是,當控制權傳遞回調用方法時,在方法中對參數所做的任何更改都將反映在該變量中。
示例:
按引用傳遞值類型是有用的,但是 ref 對于傳遞引用類型也是很有用的。這允許被調用的方法修改該引用所引用的對象,因為引用本身是按引用來傳遞的。
//?keywords_ref.csusing?System;
class?App
{
????public?static?void?UseRef(ref?int?i)
????{
????????i?+=?100;
????????Console.WriteLine("i?=?{0}",?i);
????}
????static?void?Main()
????{
????????int?i?=?10;
????????//?查看調用方法之前的值
????????Console.WriteLine("Before?the?method?calling:?i?=?{0}",?i);
????????UseRef(ref?i);
????????//?查看調用方法之后的值
????????Console.WriteLine("After?the?method?calling:?i?=?{0}",?i);
????????Console.Read();
????}
}
/**//*
控制臺輸出:
Before?the?method?calling?:?i?=?10
i?=?110
After?the?method?calling:?i?=?110
*/
out
out 關鍵字會導致參數通過引用來傳遞。這與 ref 關鍵字類似。
與 ref 的不同之處:
示例:
與 ref 示例不同的地方只要將 ref 改為 out,然后變量 i 僅需要聲明即可。
static?void?Main(){
????//int?i?=?10;?改為
????int?i;
????//
}
總結
以上是生活随笔為你收集整理的C# 参考之方法参数关键字:params、ref及out的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Sever中SQL语句语法,适合
- 下一篇: DTE和DCE