这次要来学习如何让函式返回多个值~
分别用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/
<<: Simplifying Conditional Logic
前言 昨天的文章提到 Ingress 其实也可以用来做负载平衡,只是要利用其他种方式来实现,所以接下...
首先来看看如何取用 Firebase SDK 的服务: val firestore = Fireba...
前言 什麽是拷贝? 今天朋友想 copy 你的报告,最简单的就是影印一份给他,但是当你修改报告中的内...
Cloud Monitor 如果使用了GCP平台,要如何捕捉以及监控错误,我想大概多半会使用Clo...
接下来这几天,将会带领各位以GCP的架构的视角。 向各位阐述我们先前进行的DialogFLow F...