1、ref 參數必須初始化,out 不必。
int i; SomeMethod( ref i );//語法錯誤 SomeMethod( out i );//通過
2、因爲ref需要初始化,所以ref 可以在函數內部使用,
而out未必初始化,所以不能在函數內部使用。
public void SomeMethod(ref int i) { int j=i;//通過 //... } public void SomeMethod(out int i) { int j=i;//語法錯誤 }
3、ref參數已初始化,所以在函數內部不一定需要改變值,
out未必初始化,所以在結束函數前需要改變其值。