C#參數修飾 ref修飾符: 使用ref修飾符可以使參數成為一個引用類型,從而允許我們在函數中修改該參數的值。如果我們將一個變數傳遞給一個使用ref修飾符的參數,那麼任何對該參數的修改都將影響到原始變數的值。例如: void MyFunction(ref int myParam) { myParam ...
C#參數修飾
ref修飾符:
使用ref修飾符可以使參數成為一個引用類型,從而允許我們在函數中修改該參數的值。如果我們將一個變數傳遞給一個使用ref修飾符的參數,那麼任何對該參數的修改都將影響到原始變數的值。例如:
void MyFunction(ref int myParam)
{
myParam = myParam * 2;
}
int myVar = 10;//必須要有初值
MyFunction(ref myVar);
// myVar的值現在為20
out修飾符:
使用out修飾符也可以使參數成為一個引用類型,但它通常用於返回多個值。與ref不同,當我們使用out修飾符時,我們必須在函數中對該參數進行初始化。例如:
void MyFunction(out int myParam)
{
myParam = 10;
}
int myVar;//不一定需要初值,但需要在方法內修改或賦值
MyFunction(out myVar);
// myVar的值現在為10
params修飾符:
使用params修飾符可以使函數接受可變數量的參數。該參數必須是數組類型,並且必須是函數的最後一個參數。例如:
void MyFunction(params int[] myParams)
{
foreach (int p in myParams)
{
Console.WriteLine(p);
}
}
MyFunction(1, 2, 3, 4, 5);
// 輸出1, 2, 3, 4, 5
in修飾符:
使用in修飾符可以將參數聲明為只讀。這意味著函數不能修改該參數的值,並且可以使函數更加安全和可預測。例如:
void MyFunction(in int myParam)
{
// myParam = 20; // 編譯錯誤
}
int myVar = 10;
MyFunction(in myVar);
參數修改
out修飾參數必須要再方法內修改
ref可以修改也可以不修改
ref無法在方法調用時,直接創建參數,因為ref需要有初值才能調用, 因為直接創建ref參數不一定有給其賦值
本文來自博客園,作者:Wo_OD,轉載請註明原文鏈接:https://www.cnblogs.com/WoOD-outPut/p/17202087.html