|
|
|
|
|
|
關于C#中out和ref的用法及區別,在前面的文章中曾介紹過。
在本文中,我將進一步詳述C#中out和ref有哪些差異,以及它們都有哪些優勢。
C#中的ref關鍵字是什么?
ref是一個關鍵字,指示變量何時是另一個對象或引用的別名。以下是使用關鍵字ref的5種場景(根據 Microsoft 的說法):
ref 結構或一個只讀的 ref 結構。ref 結構聲明中聲明一個字段是一個引用。我們如何使用關鍵字ref明確地定義方法? 讓我們看一個來自微軟的例子:
void Method(ref int refArgument)
{
refArgument = refArgument + 44;
}
int number = 1;
Method(ref number);
Console.WriteLine(number);
// Output: 45
可以看到,在將實參傳遞給 ref 參數的情況下,必須預先初始化它。
C#中的out關鍵字是什么?
out是通過引用傳遞參數的關鍵字。要理解,對參數執行的所有操作總是對參數執行。
一般用在必須返回多個值的方法中,雖然這個參數不傳遞屬性。
要使用此參數,我們必須在定義方法時以及在被調用方法中顯式使用關鍵字out。讓我們看一下這個例子:
int initializeInMethod;
OutArgExample(out initializeInMethod);
Console.WriteLine(initializeInMethod); // 現在值是44
void OutArgExample(out int number)
{
number = 44;
}
可以看到,out不要求變量在傳遞到方法之前進行初始化,此外, out只能用于在方法內部聲明的變量。
C#中out和ref的差異
清楚了各個關鍵字的作用之后,我們再來看看兩者的區別:
ref時,必須在將參數傳遞給ref之前對其進行初始化,而使用out就沒有必要初始化它。out時,必須在將參數返回給調用方法之前為參數賦值,而使用ref這不是必需的。ref可以雙向傳遞數據。而out是不行的,只能從被調用方法到調用方法。ref很有用。out很有用。ref和out哪個更具優勢?
使用ref相對于out沒有明顯的優勢 ,反之亦然。這實際上取決于具體情況以及你要使用代碼實現的目標。一般來說:
ref是一個不錯的選擇。out是一個不錯的選擇。ref 參數必須在傳遞給方法之前進行初始化,而 out 參數則不必進行初始化,這意味著當在調用方法之前不知道參數的確切值時,可以使用out參數。使用ref有什么好處?
雖然我們剛才看到了一些好處,但讓我們在這里回顧一下關鍵字ref:
使用ref的另一個好處是它可以提高代碼的性能。當你通過引用傳遞一個變量時,該方法可以直接訪問該變量,而不必復制該變量。這可以節省時間和內存,尤其是在變量很大的情況下。
使用out有什么好處?
使用關鍵字out有幾個好處:
使用out的另一個好處是它可以幫助減少您需要編寫的代碼量。例如,如果你有一個需要返回兩個值的方法,你可以使用out返回兩個值,而不必為每個值創建一個單獨的方法。
總結
本文介紹了C#中out和ref有哪些差異,以及它們各自的優勢,希望通過本文,你對ref和out關鍵字有更多的了解。
參考文章
相關文章
