【问题标题】:return more than one output on c#在 c# 上返回多个输出
【发布时间】:2011-05-19 12:49:53
【问题描述】:

如何在 c# 函数中返回多个类型,就像我想返回字符串和数据表一样?

【问题讨论】:

标签: c# return


【解决方案1】:

最简单的答案是使用 DataTable 的 TableName 属性。

更一般的答案是使用Tuple<DataTable, string> 或编写类或结构。

【讨论】:

  • 这仅在 .Net 4 中吗?因为我尝试过,但 VS2008 不知道 waht 是元组:S
  • @salamo:Tuple 类是 .Net 4.0 的新内容。 TableName 属性不是。
【解决方案2】:

使用 ref 或 out 参数

ref参数:需要调用者方法初始化。

public string ReturnName(ref int position)
{
     position = 1;
     return "Temp"
}


public string GetName()
{
     int i =0;
     string name = ReturnName(ref i);
     // you will get name as Temp and i =1

}


// best use out parameter is the TryGetXXX patternn in various places like (int.TryParse,DateTime.TryParse)
 int i ;
 bool isValid = int.TryParse("123s",out i);

【讨论】:

    【解决方案3】:

    您可以定义自己的类作为返回类型:

    class MyReturnType
    {
      public string String { get; set; }
    
      public DataTable Table { get; set; }
    }
    

    并返回一个实例。您可以使用元组,但通常最好使用有意义的类型和属性名称,尤其是当其他人要在软件上工作时。

    或者您可以在函数上使用out 参数。

    你走的路取决于适合你的情况。如果字符串和 DataTable 是同一事物的两个部分,那么类就有意义了。如果该字符串用于创建 DataTable 失败时的错误消息,则 out 参数可能更合适。

    【讨论】:

      【解决方案4】:

      使用输出参数:

      public string Function(out DataTable result)
      

      这样称呼它:

      DataTable table;
      string result = Function(out table);
      

      【讨论】:

        【解决方案5】:

        使用元组作为返回值。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-01-09
          • 2019-02-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多