如何在c#函数中返回多个类型,就像我想返回字符串和数据表一样?
答案 0 :(得分:3)
最简单的答案是使用DataTable的TableName
属性。
更一般的答案是使用Tuple<DataTable, string>
或编写类或结构。
答案 1 :(得分:3)
使用参考或输出参数
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);
答案 2 :(得分:2)
使用out参数:
public string Function(out DataTable result)
这样称呼:
DataTable table;
string result = Function(out table);
答案 3 :(得分:2)
您可以定义自己的类作为返回类型:
class MyReturnType
{
public string String { get; set; }
public DataTable Table { get; set; }
}
并返回该实例。您可以使用元组,但通常更好的是拥有有意义的类型和属性名称,特别是如果其他人将要使用该软件。
或者你可以在函数上使用out
参数。
你去的方式取决于你的情况。如果字符串和DataTable是同一个东西的两个部分,那么一个类是有意义的。如果在创建DataTable时字符串用于错误消息,则out参数可能更合适。
答案 4 :(得分:1)
使用元组作为回报。