如何从方法返回一个数据表和一个整数
本文关键字:一个 数据表 整数 方法 返回 | 更新日期: 2023-09-27 18:03:36
从一个方法返回两个变量最简单的方法是什么?我想返回一个DataTable
和一个Integer
。
Private SomeType someMethod()
{
int x=0;
Datatable y;
//return x and y
}
最终,"最佳"是主观的,取决于您的场景。我们可以提供选项,但"best"是您本地的。
有多种返回多个值的方法;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
有何不同?
忽略你问题中"最有效"的部分,因为它毫无意义。您可以使用一个out
参数和一个返回值:
public DataTable GetData(out int integerVariable)
{
// ...
integerVariable = 4711;
return table;
}
您也可以创建并返回一个自定义类型,其中包括DataTable
和int
。
函数应该返回一个对象,该对象公开两个属性,其中一个是整数,另一个是DataTable。