函式的引數
(一)函式的ref、out引數
函式引數預設是值傳遞的,也就是「複製乙份」,也就是「複製乙份」,例子:namespace refout引數 static void incage(int age) //複製了乙份,所以incage內部改變的是副本。 } }int age=20;
incage(age);
console.writeline("age=,age");
ref必須先初始化,因為是引用,所以必須先「有」,才能引用,而out則是內部為外部賦值,所以不需要初始化,而且外部初始化也沒用。
ref應用場景內部對外部的值進行改變,out則是內部為外部變數賦值,out一般用在函式有多個返回值的場所。
例1:函式引數預設是值傳遞的,也就是「複製乙份」,
例2:引數前加ref,因為是引用,外部引數必須先要初始化。namespace ref引數 static void incage(ref int age) //ref:內部對外部引數的改變 } }
例3:out:內部為外部變數賦值,內部引數要賦值,外部引數不需要初始化,而且外部初始化也沒用.。namespace out引數 static void incage(out int age) //out:內部為外部變數賦值 } }
namespace ref應用場景 ,i2=", i1, i2); console.readkey(); } //兩個變數的交換 static void swap(ref int i1, ref int i2) //內部的改變用ref } }例4:交換兩個變數的值
namespace out應用場景 ", i); } else console.readkey(); } } }ref應用場景:內部對外部的值進行改變ref應用場景:內部對外部的值進行改變ref應用場景:內部對外部的值進行改變ref的應用場景:內部對外部的值進行改變
例5:數字型的字串轉變為資料型別的數字
二、函式的可變引數——params一般乙個函式只能有乙個返回值,若乙個函式要有多個返回值,要用out,這就是out的應用場景。
可變引數:引數的個數可以動態增加的,在引數前面加params關鍵字。
此部分的內容在我的部落格:《c#
——函式》中的第三部分:函式的引數有詳細的說明,在此不再贅述。
>
最後,函式引數的總結:
確定函式引數的原則:自己能確定的資料自己內部解決,自己確定不了的資料通過引數傳遞。
c#中函式的引數前可加關鍵字(ref,out,params),也可以不加關鍵字(稱為「預設引數」)。
函式引數預設是值傳遞的,也就是「複製乙份」。
引數前加ref ,out和params 的區別:
區 別:
params 關鍵字是可變引數的標誌,引數的個數可以動態增加的
out內參賦值,out一般用在函式有多個返回值的場所
ref外參賦值,內部對外部的值進行改變。
相同點:
外部和內部引數前要同時加、減 ref、out,前後要保持一致性。
c 函式引數
如果函式要使用引數,則必須宣告接受引數值的變數,這些變數稱為函式的形式引數 形式引數就像函式內的其他區域性變數,在進入函式時被建立,退出函式時被銷毀 當呼叫函式時,有三種向函式傳遞引數的方式 傳值呼叫 該方法把引數的實際值複製給函式的形式引數,在這種情況下,修改函式的形式引數對實際引數沒有影響 預設...
C 函式引數
函式傳遞的是方法外的變數的副本,函式內的變數變化,不會影響函式外部的變數 static void main string args static void add int a 當引用型別的變數傳入函式後,在方法內部重新給引數賦值,外部變數和內部引數相互之間不會影響,這種情況一般很少見。static ...
C 函式引數
變數根據儲存方式的不同,可以分為 值型別和引用型別,它們之間的區別 值型別在記憶體的乙個地方 堆疊 儲存它們自己和它們的內容 引用型別在記憶體的乙個地方 堆 儲存乙個引用,而在另外乙個地方儲存內容。還用引用型別可以為null,而值型別總是包含乙個值,簡單型別中的string和object是引用型別,...