我可以创建一个函数C#,它有2个数组作为输入参数,2个作为输出吗?
答案 0 :(得分:1)
一个方法只能有一个返回值;但是,您可以使用out
参数返回多个结果。
void MyFunction(int[] input1, int[] input2, out int[] output1, out int[] output2)
答案 1 :(得分:1)
使用元组:
public Tuple<Object[], Object[]> FunctionName(Object[] array1, Object[] array2)
{
//Your code
return new Tuple<Object[],Object[]>({},{});
}
答案 2 :(得分:0)
您可以将2个数组作为参数传递给函数,但该函数可以返回单个元素。因此,您可以使用需要返回的两个数组创建一个对象,并返回该对象。
答案 3 :(得分:0)
你确定可以,伙计!
public ArrayGroup MyFunction(myType[] firstArg, myType[] secondArg) {
ArrayGroup result = new ArrayGroup();
/*Do things which fill result.ArrayOne and result.ArrayTwo */
return ArrayGroup;
}
class ArrayGroup {
myType[] ArrayOne { get; set;}
myType[] ArrayTwo { get; set;}
}
使用您希望阵列的任何类型填写myType!与string
或int
或复杂类型一样!
答案 4 :(得分:0)
void YourFunc(Int32[] input1, Int32[] input2, out Int32[] output1, out Int32[] output2)
{
output1 = new Int32[] { 1, 2, 3 };
output2 = new Int32[] { 4, 5, 6 };
}
…
YourFunc(i1, i2, out o1, out o2);
答案 5 :(得分:0)
当然可以,从响应的容器开始:
public class Response
{
public string[] One{get;set;}
public string[] Two{get;set;}
}
您的方法可能看起来像
public Response DoSomething(string[] inputOne, string[] inputTwo)
{
// do some thing interesting
return new Respponse
{
One = new string[]{"Hello","World"},
Two = new string[]{"Goodbye","Cruel","World"},
}
}
答案 6 :(得分:0)
选项一:创建一个包含结果的类型:
SomeResult MyFunction(T[] arr1, T[] arr2)
{
// ..
return new SomeResult(r1, r2);
}
class SomeResult
{
public SomeResult(T[] a, T[] b) { /* .. */ }
// Rest of implementation...
}
选项二:返回一个元组:
Tuple<T[], T[]> MyFunction(T[] arr1, T[] arr2) { }
选项三:使用输出参数(不要这样做):
void MyFunction(T1[] arr1, T[] arr2, out T[] result1, out T[] result2) { }
我更喜欢选项一,并建议不要使用参数。如果两个参数属于相同类型但不可互换,我建议还为参数创建一个类型,使其成为具有单个结果的单个参数函数。
答案 7 :(得分:0)
是的,你可以做到这一点!
您需要传递两个输出数组作为该函数的引用。
这是代码示例。
<强>功能强>
private bool ArrayImp(string[] pArray1, string[] pArray2, ref string[] oArray1, ref string oArray2)
{
//Do your work here
//Here oArray1 and oArray2 are passed by reference so you can directly fill them
// and get back as a output.
}
功能调用
string[] iArray1 = null;
string[] iArray2 = null;
string[] oArray1 = null;
string[] oArray2 = null;
ArrayImp(iArray1, iArray2, oArray1, oArray2);
在这里你需要传递iArray1和iArray2作为输入数组,你将获得oArray1和oArray2作为输出。
Cheeerss !!快乐编码!!