C 乙個方法如何返回多個值

2021-10-05 09:18:24 字數 3089 閱讀 1081

通常乙個方法只能返回乙個值,但是如果在某些時候,我們想要返回多個值,例如某個方法將乙個浮點數分割成乙個整數和乙個小數返回。

c#)中,函式方法想返回多個值,通過元組、列表、陣列、類、結構體和out引數實現的方法及示例**。

1、使用元組實現返回多個值(valuetuple和tuple)

1) 使用valuetuple實現

valuetuple命名為元組(在c#7.1中可用),優點是它最簡潔,不可變且易於構造。

private (double first, double second) getheight()

var result = getheight();

console.writeline($", ");

var (first, second) = getheight();

console.writeline($", ");

2) 使用tuple實現

.net framework已經具有通用的tuple類。但是,這些類有兩個主要限制。首先,tuple類將其屬性命名為item1,item2,依此類推。這些名稱不包含語義資訊。使用這些元組型別不能實現傳達每個屬性的含義。新的語言功能使您可以為元組中的元素宣告和使用語義上有意義的名稱。

public tupleviaclassictuple()

var tuple = viaclassictuple();

console.writeline($", ");

2、使用列表(list)或陣列實現返回多個值

1) 使用list列表實現

private listgetheight();}

var result = getheight();

console.writeline($", ");

2) 使用陣列實現

private double getheight();}

var result = getheight();

console.writeline($", ");

3、使用類或結構體返回多個值

1) 使用類實現

public class someclass

public int second

public someclass(int first, int second)

}public someclass viasomeclass()

var someclass = viasomeclass();

console.writeline($", ");

2) 使用結構體實現

public struct classicstruct

public int second

public classicstruct(int first, int second)

}public classicstruct viaclassicstruct()

var classicstruct = viaclassicstruct();

console.writeline($", ");

4、使用out引數實現

引數進行的任何操作都是在自變數上進行的。就像ref關鍵字一樣,除了ref要求在傳遞變數之前先對其進行初始化。它也類似於in關鍵字,除了in不允許呼叫的方法修改引數值。要使用out引數,方法定義和呼叫方法都必須顯式使用out關鍵字。

1) 多個out引數實現

public bool viaoutparams(out int first, out int second)

if(viaoutparams(out var firstint, out var secondint))

console.writeline($", ");

2) 使用out valuetuple實現

public bool viaouttuple(out (int first,int second) output)

if (viaouttuple(out var output))

console.writeline($", ");

用out關鍵字。

demo1:

using system;

namespace test

}class useout

" , f);

console.writeline("小數部分:" + f);

console.readkey();  //監聽鍵盤事件,按任意鍵執行退出}}

}

demo2:

/// /// ping命令檢測網路是否暢通

///

/// url資料

/// ping時連線失敗個數

///

public static bool myping(string urls, out int errorcount)

不可達,錯誤計數errorcount=", urls[i], errorcount);

}// console.writeline("ping " + urls[i] + " " + pr.status.tostring());

debug.log("ping " + urls[i] + " " + pr.status.tostring());}}

catch

//if (errorcount > 0 && errorcount < 3)

// isconn = true;

return isconnected;

}/// /// 檢測網路連線狀態

///

///

//public static void checkservestatus(string urls)

public bool checknetstatus(string urls)

if (!myping(urls, out errcount))

else

}else

}

C 乙個方法返回多個值

示例 1 static void main string args 2 value value 1.00 13 console.writeline out string value stroutvalue out string value out function 1415 16 呼叫函式 17 函...

C 乙個方法返回多個值

示例 1 static void main string args 2 value value 1.00 13 console.writeline out string value stroutvalue out string value out function 1415 16 呼叫函式 17 函...

C 乙個方法返回多個值示例

複製 如下 static void main string args value value 1.00 console.writeline out string value stroutvalue out string value out function 呼叫函式 函式原返回值與引數中均得到返回的...