c#方法的引數關鍵字:ref、out、params?
using
system;
namespace
方法的引數傳遞機制
// 引用引數(ref):ref在使用前需要先初始化變數的值,在方法體外先初始化。
public
static
void
refmethod(
ref
int
i)
// 輸出引數(out):out引數必須在方法體內初始化
public
static
void
outmethod(
out
int
i)
// 可變引數params, params後面必須跟陣列,之後不允許任何其他引數,並且在方法宣告中只允許乙個 params 關鍵字
static
int
addi(
params
int
values)
return
sum;
}
// 主函式
static
void
main()
;
console.writeline(addi(arr));
// 而使用了params修飾方法引數後,我們可以直接使用一組物件作為引數
console.writeline(addi(1, 2, 3));
console.readkey();
}
}
}
另:c# 的資料型別有兩種:
一種是值型別(value type),一種是引用型別(reference type)。
值型別包括:結構體(數值型別,bool,使用者自定義結構體)、列舉和可空型別。
引用型別包括:陣列,使用者定義的類、介面、委託,object,字串。
值型別和引用型別的區別在於:函式引數傳遞的時候,值型別把自已的值複製乙份傳遞給別的函式操作,也就是說無論函式的值怎麼改變,其本身的值都不會受到影響。而引用型別則是把自己的位址傳遞給別的函式,操作的是他本身的值,所以當傳遞的值改變時,其本身的值也跟著改變。
學習筆記,如有錯誤或遺漏,請指教。謝謝!
C 關鍵字 方法引數
printed from microsoft.docs 使用params關鍵字可以指定採用數目可變的引數的方法引數。可以傳送引數宣告中所指定型別的逗號分隔的引數列表或指定型別的引數陣列。還可以不傳送引數。如果未傳送任何引數,則params列表的長度為零。在方法宣告中的params關鍵字之後不允許有任...
C 列舉ref out 關鍵字簡單總結
列舉 列舉 enum 列舉是值型別 列舉值是從0遞增的整數 列舉不能定義字段屬性和方法 列舉enum 字串string 男.tostring 字串string 列舉enum string value 女 變數名 enum.parse typeof value ref ref關鍵字 使值型別引數,按引...
C 方法引數傳遞 輸出引數out關鍵字
out 關鍵字會導致引數通過引用來傳遞。這與 ref 關鍵字類似,不同之處在於 ref 要求變數必須在傳遞之前進行初始化,out關鍵字不要求呼叫 前對傳遞的引數進行初始化,也可以實現引用傳遞。若要使用 out 引數,方法定義和呼叫方法都必須顯式使用 out 關鍵字。採用這種方法呼叫 時,就可看到修改...