引數的 in out in out 修飾

2022-01-11 07:44:37 字數 1027 閱讀 3748

乙個函式,預設情況下,引數是 in 型別,即傳入引數,以c# 中的方法為例:

不要懷疑,c#直接支援下面的寫法:

static void main(string args)

//預設是 in 型別 所以可以不寫 in

public static int getnewnum(in int num)

指定了此修飾符,則表示引數不是用於傳參的,而是用於返回結果的,因為一般情況下,函式只能返回乙個結果,此時就能通過out方式通過引數返回多個結果,因為只是作為接收返回結果用,所以傳入的引數不需要也不允許賦值,當然因為要傳值回去,所以在return前必須賦值,例子如下:

static void main(string args)

public static int getnewnum(out int num2)

當然現在返回多個引數可以使用tuple(其實用dictlist作為返回引數也可以帶多個引數)

static void main(string args)

public static (int num, int num2) getnewnum()

in/out 在c#中可能沒聽過,不過肯定聽過ref,其實就是這個,即傳入的引數既能傳值進來,還能傳出去,因為要傳值回去,所以在return前必須賦值,例子如下:

static void main(string args)

public static int getnewnum(ref int num)

在mysql 資料庫編寫儲存過程的時候,引數一樣有這種概念,一樣分為inoutin/out

MySQL中的IN OUT INOUT型別

mysql中,儲存過程的引數型別in out inout,但是函式的引數只能是in型別的。1 in型別 使用in型別來傳遞資訊,儲存過程內部可以對引數的值進行修改,但是修改後的值呼叫者不可見。create procedure pr demo in in id int begin if id is n...

java final 修飾的引數小解

final修飾的基本型別引數,不允許修改,否則編譯即報錯 final修飾的引用型別引數,不能修改引用,但可以修改引用物件內部的屬性 public class test 對於基本型別,基本型別的值在方法內部是不能夠改變的 param i public static void checkint fina...

引數的修飾符

引數的修飾符主要有 params,out ref 一 params 1.可變引數必須是一維陣列。2.所有的引數型別必須一致 3.可以傳0到多個,也可以直接傳陣列,不傳引數的時候 比如params int arr arr的length為0,arr並不是null.如果是多個,引數必須能做這個一維陣列的元...