概要
out:輸出參數。
使用 out 參數也有兩個注意事項
Nun_1:傳方法到參數之前,可以不用先賦值。
Num_2:在方法內部,必須要有給參數賦值的語句。
我這裏先寫一個參數類型爲 int 的函數,方法體內部先不寫任何東西
static void TestOut(int s)
{
}
接着,我們在參數前面加上 out 關鍵字,看會有什麼不一樣的地方,如下圖
這也驗證了在使用 out 關鍵字的時候,在方法內部,必須要有給參數賦值的語句。
接着,在方法內部給參數 s 賦值,報錯消失
我們知道,用 ref 關鍵字的時候,如果不對變量賦初始值會報錯,但用 out 關鍵字就不會。
這裏我聲明一個類型爲 int 的變量 p,不給其賦初始值,然後調用 TestOut() 方法,如下圖
按F5啓動項目,打印如下
定義p的時候並沒有爲其賦初始值,但是通過 out 關鍵字,我們爲其返回了一個數值。
雖然使用out可以不用賦初始值,但如果給其賦初始值會怎樣呢?如下圖
即使在調用方法之前,爲變量賦值,調用方法之後,還是會更改變量的值,所以沒有必要在方法調用之前爲實參賦值。
拓展:當變量爲值類型的時候,如果沒給其賦初始值,雖然我們知道其默認值爲 0 。但因 c# 語法比較嚴格,不允許直接使用未初始化的值類型的變量,用就會報錯。