[英]Having a C# method return more than one value of different data types?
我有一个函数,它有两个参数:
string[], double[]
如何返回这两个值? 怎么称呼这个功能?
创建一个对象,其中包含要返回的值的属性:
public class MyReturnType
{
public string[] MyStringArray { get; set; }
public double[] MyDoubleArray { get; set; }
}
然后,您的方法将返回此新类型:
public MyReturnType Foo()
{
...
return new MyReturnType { MyStringArray = strings; MyDoubleArray = doubles; };
}
嘿你可以使用关键字“out”:
column s1;
column s2;
public void method1(out value1, out value2)
{
select col1, col2, from tb1
value1 = col1;
value2 = col2;
}
使用Tuple结构(.NET 4.0中的新结构,但您可以根据它在自己的dll中创建一个 - 它是多个泛型类型的简单容器)。
使用专门的运营商结构,如Michael Shimmins的回答说,但要使它成为一个结构,而不是一个类,除非它很大。
如果这是纯粹的内部函数(案例问题),请使用dicitonary或对象数组。
使用参数。
你不能直接返回这个,但你可以使用strct返回它。 你可以为string和double创建struct并将值存储在其中,之后你可以返回它。
你也可以使用ref操作符
您可以返回Hashtable
对象。 或者List
...或者您想要的任何类型的对象集合。
LE:
Hashtable process(string[] x, double[] y)
{
Hashtable output = new Hashtable();
// do whatever you want with x and y
output["stringArray"] = x;
output["doubleArray"] = y;
return output;
}
// ...
string[] stringArray = new string[] {};
double[] doubleArray = new double[] {};
// ...
Hashtable outcome = process(stringArray, doubleArray);
string[] data1 = (string[])outcome["stringArray"];
double[] data2 = (double[])outcome["doubleArray"];
// ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.