返回方法中兩個變量的最簡單方法是什麼?我想返回DataTable
和Integer
。如何從一個方法返回一個DataTable和一個Integer?
Private SomeType someMethod()
{
int x=0;
Datatable y;
//return x and y
}
返回方法中兩個變量的最簡單方法是什麼?我想返回DataTable
和Integer
。如何從一個方法返回一個DataTable和一個Integer?
Private SomeType someMethod()
{
int x=0;
Datatable y;
//return x and y
}
最終,「最好」是主觀的,取決於你的情況。我們可以提供選項,但「最好」是你本地的。
返回多個值有多種方式; out
是非常有效的,但不是很靈活,許多人覺得它很混亂(實際上,有人會說這是一種反模式)。但是,例如:
DataTable Foo(out int val) {
...
val = something
return dataTable;
}
也許更方便是聲明的返回類型封裝兩個值:
FooResult Foo() {
...
return new FooResult { Table = dataTable, Value = val };
}
其中FooResult
是具有2個屬性的類。這具有的優點是您可以輕鬆地添加更多屬性,而無需更改API。
同樣,你可以返回一個Tuple<DataTable,int>
- 但我建議反對它,因爲它對每個值表示什麼都不表示。在Tuple<string,int,string>
中,什麼是Item1
?與Item3
有什麼不同?
出來了,謝謝 – user1590636 2013-03-13 12:12:09
忽略問題中「最有效」的部分,因爲它毫無意義。您可以使用一個out
-paremeter和return value:
public DataTable GetData(out int integerVariable)
{
// ...
integerVariable = 4711;
return table;
}
您還可以創建並返回一個自定義類型,其中包括雙方的DataTable
和int
。
你的函數應該返回一個暴露兩個屬性的對象,其中一個是整數,另一個是DataTable。
你可以創建一個具有所需功能的類。然後你創建這個類的一個實例,調用函數(它甚至可以在構造函數中),函數將結果保存到屬性中並返回。 – Sinatr 2013-03-13 12:32:30
「最高效」在返回「DataTable」時可能已經是一個爭論點... – 2013-03-13 12:04:53
在一個函數中? – Novice 2013-03-13 12:06:00
在兩個單獨的功能?或作爲自定義對象? – Tim 2013-03-13 12:06:27