函数有2个数组作为输入参数,2个作为输出?

时间:2014-01-10 09:30:51

标签: c# arrays

我可以创建一个函数C#,它有2个数组作为输入参数,2个作为输出吗?

8 个答案:

答案 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!与stringint或复杂类型一样!

答案 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 !!快乐编码!!