返回方法中两个变量的最简单方法是什么?我想返回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