如何在c#函数中返回一个以上的类型,就像我想返回字符串和数据表一样?
发布于 2010-12-03 03:25:30
您可以定义自己的类作为返回类型:
class MyReturnType
{
public string String { get; set; }
public DataTable Table { get; set; }
}
并返回它的一个实例。您可以使用Tuple,但拥有有意义的类型和属性名称通常更好,特别是当其他人要在软件上工作时。
或者,您可以在函数上使用out
参数。
你走的路取决于什么适合你的情况。如果字符串和DataTable是同一事物的两个部分,那么类就有意义。如果在创建DataTable失败时,该字符串表示错误消息,则out参数可能更合适。
发布于 2010-12-03 03:23:54
最简单的答案是使用数据表的TableName
属性。
更普遍的答案是使用Tuple<DataTable, string>
或编写类或结构。
发布于 2010-12-03 03:24:23
使用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);
https://stackoverflow.com/questions/4342154
复制相似问题