N290 Tuple
Du skal skabe en ny konsol applikation med en enkelt ny statisk metode kaldet FindSumOgGns. Den tager to argumenter - begge double - og skal returnere en tuple med sum (double) og gennemsnit (double):
Du skal ende med at kunne kalde den således:
(double sum, double gns) resultat = FindSumOgGns(5.4, 10.5);
Console.WriteLine($"Sum: {resultat.sum:n2}");
Console.WriteLine($"Gns: {resultat.gns:n2}");
// eller
var resultat2 = FindSumOgGns(5.4, 10.5);
Console.WriteLine($"Sum: {resultat2.sum:n2}");
Console.WriteLine($"Gns: {resultat2.gns:n2}");
Info
Prøv også at skabe din egen klasse der kan bruges som returværdi, og dan en FindSumOgGns2-metode der returnerer den i stedet. Kan du se hvad du sparer ved at bruge en tuple i stedet? Se løsning.
Klik for at se et forslag til en løsning
namespace Demo
{
class Program
{
static void Main(string[] args)
{
(double sum, double gns) resultat = FindSumOgGns(5.4, 10.5);
Console.WriteLine($"Sum: {resultat.sum:n2}");
Console.WriteLine($"Gns: {resultat.gns:n2}");
// eller
var resultat1 = FindSumOgGns(5.4, 10.5);
Console.WriteLine($"Sum: {resultat1.Item1:n2}");
Console.WriteLine($"Gns: {resultat1.Item2:n2}");
// eller
var resultat2 = FindSumOgGns(5.4, 10.5);
Console.WriteLine($"Sum: {resultat2.sum:n2}");
Console.WriteLine($"Gns: {resultat2.gns:n2}");
var (s, g) = FindSumOgGns(5.4, 10.5);
Console.WriteLine($"Sum: {s:n2}");
Console.WriteLine($"Gns: {g:n2}");
MinType resultat3 = FindSumOgGns2(5.4, 10.5);
Console.WriteLine($"Sum: {resultat3.Sum:n2}");
Console.WriteLine($"Gns: {resultat3.Gns:n2}");
}
static (double sum, double gns) FindSumOgGns(double a, double b)
{
double s = a + b;
double g = s / 2;
return (s, g);
}
static MinType FindSumOgGns2(double a, double b)
{
double s = a + b;
double g = s / 2;
return new MinType() { Sum = s, Gns = s / 2 };
}
}
class MinType {
public double Sum { get; set; }
public double Gns { get; set; }
}
}