国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

asp.net(c#)ref,out ,params的區別

來源:懂視網 責編:小采 時間:2020-11-27 22:43:34
文檔

asp.net(c#)ref,out ,params的區別

asp.net(c#)ref,out ,params的區別:NO.1 params 一個可以讓方法(函數)的擁有可變參數的關鍵字。 原則:在方法聲明中的 params 關鍵字之后不允許任何其他參數,并且在方法聲明中只允許一個 params 關鍵字。 示例(拷貝到vs2005中即可用,下面不再說明) 代碼如下:public parti
推薦度:
導讀asp.net(c#)ref,out ,params的區別:NO.1 params 一個可以讓方法(函數)的擁有可變參數的關鍵字。 原則:在方法聲明中的 params 關鍵字之后不允許任何其他參數,并且在方法聲明中只允許一個 params 關鍵字。 示例(拷貝到vs2005中即可用,下面不再說明) 代碼如下:public parti

NO.1 params
一個可以讓方法(函數)的擁有可變參數的關鍵字。
原則:在方法聲明中的 params 關鍵字之后不允許任何其他參數,并且在方法聲明中只允許一個 params 關鍵字。
示例(拷貝到vs2005中即可用,下面不再說明)
代碼如下:

public partial class Form1 : Form
{
public static void UseParams(params int[] list)
{
string temp = "";
for (int i = 0; i < list.Length; i++)
temp = temp +" " +list[i].ToString();
MessageBox.Show(temp);
}
public static void UseParams2(params object[] list)
{
string temp = "";
for (int i = 0; i < list.Length; i++)
temp = temp + " " + list[i].ToString();
MessageBox.Show(temp);
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
UseParams(1, 2, 3);//看參數是3個
UseParams(1, 2); //看參數是2個,可變吧
UseParams2(1, 'a', "test");
int[] myarray = new int[3] { 10, 11, 12 };
UseParams(myarray); //看也可以是容器類,可變吧:)
}
}

NO.2 out
這是一個引用傳遞L。
原則一:當一個方法(函數)在使用out作為參數時,在方法中(函數)對out參數所做的任何更改都將反映在該變量中。
原則二:當希望方法返回多個值時,聲明 out 方法非常有用。使用 out 參數的方法仍然可以返回一個值。一個方法可以有一個以上的 out 參數。
原則三:若要使用 out 參數,必須將參數作為 out 參數顯式傳遞到方法。out 參數的值不會傳遞到 out 參數。
原則四:不必初始化作為 out 參數傳遞的變量,因為out 參數在進入方法(函數)時后清空自己,使自己變成一個干凈的參數,也因為這個原因必須在方法返回之前為 out 參數賦值(只有地址沒有值的參數是不能被.net接受的)。
原則五:屬性不是變量,不能作為 out 參數傳遞。
原則六:如果兩個方法的聲明僅在 out 的使用方面不同,則會發生重載。不過,無法定義僅在 ref 和 out 方面不同的重載。例如,以下重載聲明是有效的:
代碼如下:

class MyClass
{
public void MyMethod(int i) {i = 10;}
public void MyMethod(out int i) {i = 10;}
}

而以下重載聲明是無效的:
代碼如下:

class MyClass
{
public void MyMethod(out int i) {i = 10;}
public void MyMethod(ref int i) {i = 10;}
}

有關傳遞數組的信息,請參見使用 ref 和 out 傳遞數組。
示例附后
NO.2 ref
ref僅僅是一個地址!!!
原則一:當一個方法(函數)在使用ref作為參數時,在方法中(函數)對ref參數所做的任何更改都將反映在該變量中。
原則二:調用方法時,在方法中對參數所做的任何更改都將反映在該變量中。
原則三:若要使用 ref 參數,必須將參數作為 ref 參數顯式傳遞到方法。ref 參數的值可以被傳遞到 ref 參數。
原則四:ref參數傳遞的變量必須初始化,因為ref參數在進入方法(函數)時后還是它自己,它這個地址指向的還是原來的值,也因為這個原因ref參數也可以在使用它的方法內部不操作。
原則六:如果兩種方法的聲明僅在它們對 ref 的使用方面不同,則將出現重載。但是,無法定義僅在 ref 和 out 方面不同的重載。例如,以下重載聲明是有效的:
代碼如下:

class MyClass
{
public void MyMethod(int i) {i = 10;}
public void MyMethod(ref int i) {i = 10;}
}

但以下重載聲明是無效的:
代碼如下:

class MyClass
{
public void MyMethod(out int i) {i = 10;}
public void MyMethod(ref int i) {i = 10;}
}

有關傳遞數組的信息,請參見使用 ref 和 out 傳遞數組。
示例
代碼如下:

public static string TestOut(out string i)
{
i = "out b";
return "return value";
}
public static void TestRef(ref string i)
{
//改變參數
i = "ref b";
}
public static void TestNoRef(string refi)
{
// 不用改變任何東西,這個太明顯了
refi = "on c";
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string outi;//不需要初始化
MessageBox.Show(TestOut(out outi));//返回值
//
輸出"return value";
MessageBox.Show(outi);//調用后的out參數
//輸出"out b";
string refi = "a"; // 必須初始化
TestRef(ref refi); // 調用參數
MessageBox.Show(refi);
//輸出"ref b";
TestNoRef(refi);//不使用ref
MessageBox.Show(refi);
//輸出"ref b";
}

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

asp.net(c#)ref,out ,params的區別

asp.net(c#)ref,out ,params的區別:NO.1 params 一個可以讓方法(函數)的擁有可變參數的關鍵字。 原則:在方法聲明中的 params 關鍵字之后不允許任何其他參數,并且在方法聲明中只允許一個 params 關鍵字。 示例(拷貝到vs2005中即可用,下面不再說明) 代碼如下:public parti
推薦度:
標簽: 區別 out net
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 综合欧美日韩 | 国产高清免费 | 香港经典a毛片免费观看…伊人色综合久久 | 91久久精品国产91久久性色也 | 在线视频一二三区 | 一级一级一级毛片免费毛片 | 欧美精品国产综合久久 | 在线观看欧美国产 | 精品国产91久久久久 | 国产精品成久久久久三级 | 亚洲国产视频网 | 国产精品成人第一区 | 国精产品一区 | 日韩精品一二三区 | 欧美日韩国产一区二区三区 | 日韩电影免费在线观看视频 | 国产精品久久久久999 | 欧美日韩国产三级 | 国产精品视_精品国产免费 国产精品视频第一区二区三区 | 国产免费小视频在线观看 | 国产精品特级毛片一区二区三区 | 精品欧美日韩一区二区三区 | 亚洲色图第一页 | 亚洲欧美国产高清va在线播放 | 久久亚洲精品国产精品婷婷 | 亚洲欧美日韩在线 | 性插欧美 | 日韩伦理亚洲欧美在线一区 | 国产精品欧美韩国日本久久 | 亚洲精品二三区伊人久久 | 一区二区三区日韩 | 日韩免费在线观看视频 | 亚欧美色| 四虎91视频 | 国产欧美日韩综合 | 国产视频一区二区三区四区 | 91中文在线观看 | 国内精品视频一区二区三区 | 综合精品欧美日韩国产在线 | 国产欧美日韩视频在线观看 | 精品久久久久久亚洲 |