从方法返回两个变量的最简单方法是什么?我想返回一个DataTable
和一个Integer
。
Private SomeType someMethod()
{
int x=0;
Datatable y;
//return x and y
}
从方法返回两个变量的最简单方法是什么?我想返回一个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 };
}
whereFooResult
是具有 2 个属性的类。这样做的好处是您可以轻松添加更多属性,而无需更改 API。
同样,您可以返回 a Tuple<DataTable,int>
- 但我建议不要这样做,因为它没有表达每个值所代表的含义。在一个Tuple<string,int,string>
,什么是Item1
?有什么不同Item3
?
您的函数应返回一个公开两个属性的对象,其中一个是整数,另一个是 DataTable。