如何从方法返回一个数据表和一个整数

本文关键字:一个 数据表 整数 方法 返回 | 更新日期: 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;
}

您也可以创建并返回一个自定义类型,其中包括DataTableint

函数应该返回一个对象,该对象公开两个属性,其中一个是整数,另一个是DataTable。