【C#】Multi Value Return

这次要来学习如何让函式返回多个值~

分别用Array~ Struct~ Tuple~ Output Parameters~ Reference~ ValueTuple~


学习目标: Multi Value Return 实务

学习难度: ☆☆☆


Returning by Array

using System;namespace ConsoleApp1{    class MainProgram    {        static int[] MultipleReturns(int score1, int score2)        {            int[] array = new int[2];            if (score1 > score2)            {                array[0] = score2;                array[1] = score1;            }            if (array[0] < array[1])            {                array[0] = score1;                array[1] = score2;            }            return array;        }        static void Main()        {            int[] array = MultipleReturns(90, 70);        }    }}

Returning by Struct or Class

using System;namespace ConsoleApp1{    struct Scores    {        public int score1;        public int score2;    }    class MainProgram    {        static Scores MultipleReturns(int score1, int score2)        {            Scores scores = new Scores();            if (score1 > score2)            {                scores.score1 = score2;                scores.score2 = score1;            }            if (score1 < score2)            {                scores.score1 = score1;                scores.score2 = score2;            }            return scores;        }        static void Main()        {            Scores scores = new Scores();            scores = MultipleReturns(90, 70);        }    }}

Returning by Tuple

using System;namespace ConsoleApp1{    class MainProgram    {        static Tuple<int, int> MultipleReturns(int score1, int score2)        {            if (score1 > score2)            {                int temp = score2;                score2 = score1;                score1 = temp;            }            return new Tuple<int, int>(score1, score2);        }        static void Main()        {            var tuple = MultipleReturns(90, 70);        }    }}

Returning by Output Parameters

using System;namespace ConsoleApp1{    class MainProgram    {        static void MultipleReturns(out int score1, out int score2, out int avg)        {            score1 = 60;            score2 = 100;            avg = (score2 + score1) / 2;        }        static void Main()        {            int score1, score2, avg;            MultipleReturns(out score1, out score2, out avg);        }    }}

Returning by Ref


using System;namespace ConsoleApp1{    class MainProgram    {        static void MultipleReturns(ref int score1, ref int score2, ref int avg)        {            score1 = 60;            score2 = 100;            avg = (score2 + score1) / 2;        }        static void Main()        {            int score1 = 0, score2 = 0, avg = 0;            MultipleReturns(ref score1, ref score2, ref avg);        }    }}

Returning by Value Tuple (需用NuGet装System.ValueTuple)

using System;

namespace ConsoleApp1
{
class MainProgram
{
static (int, int) MultipleReturns(int score1, int score2)
{

        if (score1 > score2)        {            int temp = score2;            score2 = score1;            score1 = temp;        }        return (score1, score2);    }    static void Main()    {        (int, int) output = MultipleReturns(90, 70);        Console.WriteLine(output.Item1 + "" + output.Item2);    }}

}

-----参考资料:https://www.c-sharpcorner.com/UploadFile/9b86d4/how-to-return-multiple-values-from-a-function-in-C-Sharp/

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章