c#參數修飾詞 in、out、ref
1. in 參數
in 參數用於將參數「以只讀的方式」傳遞給方法,這意味著方法內部無法修改該參數的值。in 參數適合用於大型結構體,因為可以避免不必要的複製操作,提高效率。
public static void ShowValue(in int number)
{
// number = 20; // 錯誤:無法修改 in 參數
Console.WriteLine($"Value is {number}");
}
public static void Main()
{
int value = 10;
ShowValue(value); // 輸出:Value is 10
}
2. out 參數
out 參數用於從方法中「傳回值」。方法必須在退出前對out 參數賦值,並且呼叫方法時不需要對傳入的變量進行初始化。out 常用於需要返回多個值的情境,例如TryParse方法。
public static void Calculate(int a, int b, out int sum, out int product)
{
sum = a + b;
product = a * b;
}
public static void Main()
{
int resultSum, resultProduct;
Calculate(3, 4, out resultSum, out resultProduct);
Console.WriteLine($"Sum: {resultSum}, Product: {resultProduct}"); // 輸出:Sum: 7, Product: 12
}
3. ref 參數
ref 參數用於「以參考方式」傳遞變量,方法內部可以修改該變量的值,且改動會反映在方法外部。與out不同,ref 參數在傳遞前必須先初始化。
public static void DoubleValue(ref int number)
{
number *= 2;
}
public static void Main()
{
int value = 5;
DoubleValue(ref value);
Console.WriteLine($"Doubled Value: {value}"); // 輸出:Doubled Value: 10
}
- in: 傳入參數的值,方法內無法修改該值。
- out: 方法用來回傳值,參數在方法內必須被初始化。
- ref: 以參考方式傳遞,方法內可修改值並影響到方法外部。
留言
張貼留言