Hvis du opretter en applikation i C#, vil du være vant til at kalde funktioner for at returnere specifikke værdier. Nogle gange kan der være tilfælde, hvor du muligvis skal returnere flere værdier fra en enkelt funktion.

Der er forskellige måder, du kan opnå dette på. Den ene er at returnere flere værdier inde i et enkelt array. Du kan også tildele værdier til flere globale variabler inde fra funktionen.

Afhængigt af din forretningslogik, omfangskrav eller konventioner er en anden måde at opnå dette på at bruge parametre.

Hvad er en ud-parameter?

Standardmåden til at returnere en værdi fra en funktion er at bruge nøgleordet "retur". Hvis du ikke er bekendt med, hvad en funktion er, kan du læse mere om funktioner i programmering. Du kan også udforske andre grundlæggende programmeringsprincipper.

statiskugyldig Beregning() 
{
dobbelt nummer = 30;
Vend tilbage nummer;
}

En anden måde at hente en værdi fra en funktion på er at bruge en "ud"-parameter i stedet for. Du kan erklære en ud-parameter i metodens signatur. Du kan derefter bruge nøgleordet "out" til at angive, at parameteren er en ud-parameter.

instagram viewer

I stedet for at bruge nøgleordet return, skal du altid tildele en værdi til parameteren ud.

statiskugyldigBeregning(ud dobbelt nummer)
{
tal = 30;
}

Når du kalder Calculation()-metoden, skal du indtaste en variabel for ud-parameteren. Programmet får værdien af ​​"number"-variablen inde i Calculation()-funktionen og tildeler den til den indtastede variabel. I dette tilfælde udsendes værdien "30".

dobbelt nummer = 0;

// Henter værdien af ​​"number"-variablen inde i Calculation()-funktionen, som er 30.
Beregning (udtal);

// Udskriver tallet 30
Konsol.WriteLine(nummer);

Sådan opretter du en funktion med en ud-parameter

Opret en funktion i en ny C#-konsolapplikation, og giv parameteren nøgleordet "out".

  1. Åbn Visual Studio på din computer, og klik på Opret et nyt projekt.
  2. Vælg Konsolapplikation, og klik på Næste.
  3. Navngiv dit projekt, og vælg en placering til at gemme dine Visual Studio-filer. Klik på Næste.
  4. Klik på skab. Visual Studio vil generere startkoden til en simpel konsolapplikation.
  5. Under funktionen Main() skal du oprette en ny funktion kaldet CalculateTaxSalary(). Formålet med denne funktion er at trække skatten fra en persons løn for at beregne deres hjemtagerløn.
    statiskdobbeltBeregn SkatLøn(int løn, ud dobbelt taxedAmount)
    {
    }
  6. Inde i funktionen tilføjes beregningen for hjemtagningslønnen efter skat. Returner resultatet.
    statiskdobbeltBeregn SkatLøn(int løn)
    {
    konstdobbelt momssats = 0.3;
    dobbelt takeHomeSalary = løn - (løn * skattesats);
    Vend tilbage takeHomeLøn;
    }
  7. Fjern standard "Hello World"-output i hovedfunktionen. Kald i stedet funktionen CalculateTaxSalary() op. Udskriv resultatet returneret fra funktionen til konsollen.
    statiskugyldig Main (streng[] args)
    {
    dobbelt takeHomeSalary = CalculateTaxSalary(100000);
    Konsol. WriteLine($"Hjem-lønnen fra $ 100,000er $ {takeHomeSalary}");
    }
  8. Rediger funktionen CalculateTaxSalary(), så du også skal returnere en anden værdi. Den anden værdi vil indeholde det beskattede beløb. Da du allerede bruger return-sætningen til at returnere en værdi, skal du bruge en ud-parameter i stedet for. Tilføj en taxedAmount out-parameter til metodesignaturen.
    statiskdobbeltBeregn SkatLøn(int løn, ud dobbelt taxedAmount)
  9. Inde i funktionen CalculateTaxSalary() skal du beregne mængden af ​​skat, der er påført lønnen. Tildel resultatet til variablen taxedAmount.
    statiskdobbeltBeregn SkatLøn(int løn, ud dobbelt taxedAmount)
    {
    konstdobbelt momssats = 0.3;
    taxedAmount = løn * taxRate;
    dobbelt takeHomeSalary = løn - taxedAmount;
    Vend tilbage takeHomeLøn;
    }

Sådan returneres en værdi fra en ud-parameter

For at hente værdien af ​​en ud-parameter skal du kalde funktionen og gemme værdien af ​​ud-parameteren i en lokal variabel.

  1. Fjern den eksisterende kode fra Main()-funktionen. Opret en ny variabel til at gemme det beskattede beløb.
    dobbelt taxedAmount = 0;
  2. Kald funktionen CalculateTaxSalary(). Funktionen returnerer hjemtagningslønnen ved hjælp af returopgørelsen. Funktionen vil også hente værdien fra taxedAmount-variablen ved hjælp af ud-parameteren. Det vil gemme værdien i taxedAmount-variablen inde i hovedfunktionen.
    dobbelt takeHomeSalary = CalculateTaxSalary(100000, ud taxedAmount);
    Konsol. WriteLine($"Hjem-lønnen fra $ 100,000er $ {takeHomeSalary}. Det beløb, der blev beskattet, var $ {taxedAmount}.");

Sådan bruges flere ud-parametre

For at bruge flere ud-parametre skal du oprette en funktion og tilføje nøgleordet ud til alle de parametre, du gerne vil returnere en værdi fra.

  1. Opret en ny funktion kaldet MultipleValues(). Tilføj tre parametre og tildel en værdi til hver af dem.
    statiskugyldigFlere værdier(ud int a, ud int b, ud int c)
    {
    a = 10;
    b = 20;
    c = 30;
    }
  2. I funktionen Main() skal du oprette lokale variabler for hver af de tre værdier.
    int a = 0;
    int b = 0;
    int c = 0;
  3. Kald MultipleValues()-funktionen for at returnere de tre værdier gennem ud-parametrene.
    MultipleValues ​​(ud a, ud b, ud c);
    Konsol. WriteLine($"a: {a}, b: {b}, c: {c}");

Sådan kører du konsolapplikationen

Når du kører programmet, åbnes et kommandopromptvindue for at vise dig eventuelle udskrevne udsagn i dit program.

  1. Øverst i Visual Studio-applikationen skal du klikke på den grønne afspilningsknap for at starte konsolapplikationen.
  2. Visual Studio vil kompilere programmet og åbne en kommandoprompt. Kommandoprompten viser de udsendte resultater. Dette inkluderer de værdier, som funktionerne returnerede som ud-parametre.

Brug af Out-parametre i en C#-applikationskonsol

I C# giver ud-parametre dig mulighed for at returnere mere end én værdi fra en funktion. Du kan erklære flere ud-parametre i metodens signatur og tildele værdier til disse variable inde i funktionen. Når du kalder funktionen, kan du hente værdierne gemt i disse ud-parametre og bruge dem andre steder i applikationen.

Hvis du har at gøre med komplekse objekter og grupper af data, kan du også returnere objekter baseret på en klasse. Du kan udforske mere om, hvordan du opretter og bruger klasser i C#.