我想知道如何从函数中返回多个对象(数据表和堆栈)?

kha*_*han 0 c#

  public DataTable,Stack ReadTxtFile(string Flepath)
    {
        //some work done with datatable and stack
        Stack stk = new Stack();
        DataTable dt = new DataTable();
        return dt,stk;
    }
Run Code Online (Sandbox Code Playgroud)

我想知道从单个方法返回多个对象的最佳方法?

Mar*_*ell 6

这里有各种选择:

  • 使用out参数作为额外信息
  • 使用多个属性定义您自己的类型
  • 使用"值元组"来表示各个部分(这需要最近的C#版本)

作为最后一个例子:

public (DataTable table,Stack stack) ReadTxtFile(string Flepath)
{
    //some work done with datatable and stack
    Stack stk = new Stack();
    DataTable dt = new DataTable();
    return (dt,stk);
}
Run Code Online (Sandbox Code Playgroud)

用法:

var (table,stack) = ReadTextFile(path);
Run Code Online (Sandbox Code Playgroud)

但是......作为旁注:我建议"不要使用DataTable"作为一般准则.