請問C如何返回多個值,c 函式怎麼返回兩個值

2022-03-08 15:34:05 字數 6404 閱讀 9166

1樓:悽光

public void main()

public (string name, int age) getuser()

2樓:匿名使用者

c#的方法只能返回乙個物件,不能返回多個值;

如果你必須要返回多個值,你可以使用如下的方法:

1、out ref 修飾符:使用修飾符,對方法的引數進行特殊的處理;但一般不建議這麼做,這樣會增加後期維護**的難度;如果要用盡量用out;使用ref時在對值型別與引用型別時更難於理解;

2、將要返回的多個值定義與乙個資料類,方法返回時返回乙個該類的例項;

3、返回乙個array或list,對返回的索引進行約定,第乙個值是什麼,第二個值是什麼(該方法極不可取)

4、將該方法與返回值放到乙個類中,對你的**進行修化;

建議:如果**出現你說的這種情況,你可以考慮重構你的**;盡量不要讓你所描述的之種情況出現;

3樓:匿名使用者

一,集合,如arraylist,object

二,ref,out等

三,定義乙個新的類,該類裡包含你需要的各種資訊。

4樓:

函式引數中用ref或者 out ,在函式內對此類引數直接操作即可

詳細的可以看幫助文件,有什麼問題盡量在幫助文件裡找,不要過分相信那些中文程式設計書籍

c#函式怎麼返回兩個值

5樓:青空漂流

函式只能乙個返回值,如果要有2個返回值,對於變數返回,必須把2者用特殊符號隔開,作為乙個字串返回值返回,外面再針對這個返回值做分割處理

6樓:

void fun(ref int a, ref char b)int c=0, d = 'x';

fun(ref c, ref d);

如上,c#也可以。

c語言可以的乙個通過return返回乙個通過引數返回,c#也可以道理同上。

c#還可以通過把2個資料組成乙個物件,直接return。

7樓:天蠍神經俠侶

在c#中讓乙個函式返回多個值有兩種方法可以實現:

第一種是使用指標變數宣告函式(或者使用陣列變數)第二種是使用傳出引數

第一種方法:函式返回的是乙個指標位址(陣列位址),這個記憶體位址有多個變數寄存在裡面。這個方法我不太會用,傳位址傳值我常常搞的淅瀝糊塗。

第二種方法:我用例子說明。

首先聲名乙個函式,定義如下

public bool checkname(string username, out string password, out int state)

else

return false;

}應用方法如下:

string password = "";

int state = 0;

string username = "abc";

bool falg = checkname(username,out password, out state);

這個就可以得到函式checkuser返回的三個值falg 、password、state在使用out型引數的時候必須事先宣告,否則無法使用,可以看作輸出引數的初始化。

c#乙個方法返回2個值

8樓:匿名使用者

有兩種方式:

第一種:採用引用,示例如下:

void fun(out double area,out double perimeter)

或void fun(ref double area,ref double perimeter)

第二種:

public class info

info fun()

個人推薦採用第二種,可擴充套件性好

9樓:小孟

3種思路:

1:可以將你要返回的多個值當作是乙個物件的多個屬性,直接返回物件,達到最終結果

2:加ref

3:如果2個值是乙個型別,可以考綠用陣列,集合。。意思是一樣

10樓:匿名使用者

你要麼返回陣列,要麼使用ref、out。

1、返回陣列方式:

public int fun()

至於陣列中哪個是面板哪個是周長只能自己約定2、ref或out方式,你這種情況用out即可public void fun(out s,out l)在你的方法中計算完成後將面積的結果賦值給s,周長賦值給l呼叫時:

int s,l;

fun(out s,out l);

然後s,l就是面積和周長。

11樓:匿名使用者

建議寫兩個方法吧,要不然就返回乙個陣列吧,第乙個放圓面積,第二個放圓周長

12樓:匿名使用者

方法一.重新建乙個新實體類,宣告變數字段,可以放你所有的字段,周長,面積,半徑, 等等你有用的字段,然後寫個方法,傳入你要計算測引數給你那個方法,在把你的計算值賦給這個實體類例項的新增方法返回乙個物件,需要佔記憶體,把這兩個值放到資料庫中;

方法二就是你寫個方法用type區別計算兩次,或寫兩個方法方法三已字串形式拼接返回前台用js擷取賦值都行。

如果是後面一直要用這兩個值的話,個人建議用第一種,這就看你前台的需求你了。

13樓:匿名使用者

返回物件 或者用out引數

14樓:

建議放在兩個函式裡面分別求。沒必要只用用乙個函式吧

c#函式怎麼返回兩個值?

15樓:

void fun(ref int a, ref char b)int c=0, d = 'x';

fun(ref c, ref d);

如上,c#也可以。

c語言可以的乙個通過return返回乙個通過引數返回,c#也可以道理同上。

c#還可以通過把2個資料組成乙個物件,直接return。

c#的方法中如何同時返回兩個變數值

16樓:匿名使用者

return 只能返回乙個,實現返回兩個變數效果一:return 返回string陣列把str1和str2放進陣列二:通過引用改變str1的值,用return返回str2.

c#中,如果方法引數使用ref或out定義,則資料通過引用而不是通過值傳遞。

17樓:

public string return2value(ref string str2)

18樓:匿名使用者

public int getstrbyrefarg(ref string str1,ref string str2) 或public int getstrbyoutarg(out string str1,out string str2)用時注意區別

19樓:七星陣

public bool checkname(string username, out string password, out int state)

else

return false;}

20樓:帶淚的紫藤花

加個ref關鍵字,在函式內部改變str2的值。。

c#怎樣使乙個函式有兩個返回值

21樓:匿名使用者

兩個返回值都是int型別,而且長度還不一樣可以這樣做,返回值型別為 list泛型集合在方法裡面你先把兩個int a=new int[3];int b=new int[5];

加到下面的泛型集合中去

listlist=new list();

list.add(a);

list.add(b);

return list;

用的時候用foreach迴圈遍歷

22樓:椴

ref必須初始化,因為是引用,所以必須先有才能引用,而out則是內部為外部賦值,所以不需要初始化,而且初始化也沒有用。

ref為內部對外部的值進行改變,out則是內部為外部變數進行賦值,out一般用在函式有多個返回值的場景。

class program

", age);

incage1(out age);

console.writeline("out後年齡是:", age);

console.readkey();

}static void incage(ref int age)static void incage1(out int age)}

23樓:

private int getint(out int a)

或者用列舉型別!

就返回二個int 型別的引數!

24樓:匿名使用者

public void getreturn(int out a,string out str)

用out返回出來

25樓:

建乙個列舉,到時候返回這乙個列舉即可!!!

c#函式如何返回多個值

26樓:

可以使用引用型別和輸出型別解決這個問題,在c#基礎教程上有詳解!out或者ref

其實你還可以使用引用型別物件,例如:以class或者struct進行物件傳遞!

27樓:匿名使用者

返回多個值

不如這樣好了把多個值放到陣列裡返回函式

返回值是型別不是數量的概念!

void 或有int string等

不知道你是不是這個意思!!!

返回多個值

返回多個值

沒聽過!!

28樓:比北極熊還熊

1.採用分隔符'-',用返回值時再split;

2.如果是相關屬性可以用類或都struct.

29樓:

很簡單的,用陣列作為函式的返回型別。例如:

public object myfunction()

30樓:韌勁

static void main(string args)

", value);//value = 1.00

console.writeline("out string value = " + stroutvalue); //out string value = out function

//呼叫函式

//函式原返回值與引數中均得到返回的值

value = returnmulvalue(out stroutvalue);

console.writeline("call returnmulvalue(out string strout)");

console.writeline("value = ", value);//value = 2.00

console.writeline("out string value = " + stroutvalue);//out string value = out function 2

//宣告

int outarr;

//呼叫函式

//函式返回陣列

returnmularr(out outarr, out value);

console.writeline("call returnmularr(out int arr, out int i)");

console.writeline("value = ", value);//value = 3.00

console.writeline("out arr value ");

for (int j = 0; j < outarr.length; j++)

}////// 返回多個值,原函式返回空

////// 使用out關鍵字返回的字串

/// 使用out關鍵字返回的數值

static void returnmulvalue(out string strout, out int i)

////// 返回多個值,原函式返回數值

////// 使用out關鍵字返回的字串

/// 原函式直接返回的數值

static int returnmulvalue(out string strout)

////// 返回陣列

////// 使用out關鍵字返回的陣列

/// 使用out關鍵字返回的數值

static void returnmularr(out int arr, out int i)

; i = 3;}

C中的返回值指的是什麼,C函式返回值是什麼意思,幹什麼的

首先,c語言中的函式有兩種形式 1 有返回值,2 無返回值。有返回值的函式會把內執行的結果 容也就是你寫這個函式的目的 返回到主函式中。沒有返回值的函式主要是為了完成某種任務 其實這是廢話,函式的功能就是為了完成某種任務。而一般沒有任何值返回到主函式中 也可以通過在無返回值的函式中操作全域性變數來改...

C裡返回值為int型別陣列的函式如何定義

int 實際上是乙個類,它的基類是array.實際上,所有的陣列型別都是類,而且基類是array.int arr new int 10 實際上是建立了int這種型別的乙個物件,只是微軟為了讓大家習慣,就使用了類似c 的陣列定義方式。你的補充問題是不是這個意思 arr randques randque...

C語言pow函式返回值是什麼型別的

c c 中的數學函式 bai原型 在 dutc2.0中原型為 zhiextern float pow float x,float y 而在vc6.0中原型為double pow double x,double y 標頭檔案 math.h cmath c 中 功能 計算daox的y次冪。返回值 x不能...