如果定义一个方法,能返回多个值吗?
假设在一个方法里有三个返回值,都是int类型,肿么写?

解决方案 »

  1.   

    1. 可以
    2. 返回 int[] 数组, 再复杂就返回自定义的类
    3. 参数out
      

  2.   

    (1)使用ref out参数
    (2)返回数组、结构体、自定义类型
    (3)返回Tuple<int, int, int>
      

  3.   

    bool getValue( out int x1, out int x2, out int x3 );
    使用传出引用out
      

  4.   

    Tuple<int, int, int> Foo(int[] data)
    {
        return new Tuple<int, int, int>(data.Min(), data.Max(), data.Sum());
    }
    使用
    int[] data = { 1, 2, 3, 4, 5 };
    var r = Foo(data);
    Console.WriteLine("min {0}, max {1}, sum {2}.", r.Item1, r.Item2, r.Item3);
      

  5.   

    比如这样,或算定义一个类.读出来的给类的字段赋.
            static void Main(string[] args)
            {
                int maxnum;
                int minnum;
                int totalnum;
                int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                Method(numbers,out maxnum,out minnum,out totalnum);
                Console.WriteLine("MAX:{0}..MIN:{1}..TOTAL:{2}", maxnum, minnum, totalnum);
                Console.ReadLine();        }
            static void Method(int[] num, out int max, out int min, out int total)
            {
                max = num.Max();
                min = num.Min();
                total = num.Sum();
            }
      

  6.   

    再来一个:
    IEnumerable<int> Foo(int[] data)
    {
        yield return data.Min();
        yield return data.Max();
        yield return data.Sum();
    }
    使用
    int[] data = { 1, 2, 3, 4, 5 };
    var r = Foo(data).ToArray();
    Console.WriteLine("min {0}, max {1}, sum {2}.", r[0], r[1], r[2]); 
      

  7.   

    再来一个
    object Foo(int[] data)
    {
        return new { min = data.Min(), max = data.Max(), sum = data.Sum() };
    }
    使用
    int[] data = { 1, 2, 3, 4, 5 };
    dynamic r = Foo(data);
    Console.WriteLine("min {0}, max {1}, sum {2}.", r.min, r.max, r.sum);  
      

  8.   

    比如这样,或算定义一个类.读出来的给类的字段赋.
            static void Main(string[] args)
            {
                int maxnum;
                int minnum;
                int totalnum;
                int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
                Method(numbers,out maxnum,out minnum,out totalnum);
                Console.WriteLine("MAX:{0}..MIN:{1}..TOTAL:{2}", maxnum, minnum, totalnum);
                Console.ReadLine();        }
            static void Method(int[] num, out int max, out int min, out int total)
            {
                max = num.Max();
                min = num.Min();
                total = num.Sum();
            }谢谢了!!