Om du skapar en applikation i C# är du van vid att anropa funktioner för att returnera specifika värden. Ibland kan det finnas fall där du kan behöva returnera flera värden från en enda funktion.
Det finns olika sätt att uppnå detta. En är att returnera flera värden inuti en enda array. Du kan också tilldela värden till flera globala variabler, inifrån funktionen.
Beroende på din affärslogik, omfattningskrav eller konventioner är ett annat sätt att uppnå detta att använda ut parametrar.
Vad är en ut-parameter?
Standardsättet att returnera ett värde från en funktion är att använda nyckelordet "retur". Om du inte är bekant med vad en funktion är kan du läsa mer om funktioner i programmering. Du kan också utforska andra grundläggande programmeringsprinciper.
statisktomhet Beräkning()
{
dubbel nummer = 30;
lämna tillbaka siffra;
}
Ett annat sätt att hämta ett värde från en funktion är att istället använda en "out"-parameter. Du kan deklarera en ut-parameter inom metodens signatur. Du kan sedan använda nyckelordet "out" för att ange att parametern är en ut-parameter.
Istället för att använda nyckelordet retur måste du alltid tilldela ett värde till parametern out.
statisktomhetBeräkning(ut dubbel siffra)
{
antal = 30;
}
När du anropar metoden Calculation() skickar du in en variabel för parametern out. Programmet kommer att få värdet på variabeln "number" i funktionen Calculation() och tilldela den till den inmatade variabeln. I detta fall kommer värdet "30" att matas ut.
dubbel nummer = 0;
// Hämtar värdet på variabeln "number" i funktionen Calculation(), vilket är 30.
Beräkning (uttal);
// Skriver ut siffran 30
Trösta.Skrivlinje(siffra);
Hur man skapar en funktion med en ut-parameter
Skapa en funktion i en ny C#-konsolapplikation och ge parametern nyckelordet "out".
- Öppna Visual Studio på din dator och klicka på Skapa ett nytt projekt.
- Välj Konsolapplikation, och klicka på Nästa.
- Namnge ditt projekt och välj en plats för att lagra dina Visual Studio-filer. Klicka på Nästa.
- Klicka på Skapa. Visual Studio kommer att generera startkoden för en enkel konsolapplikation.
- Under Main()-funktionen skapar du en ny funktion som heter CalculateTaxSalary(). Syftet med denna funktion är att dra av skatten från en persons lön för att beräkna hemtagningslönen.
statiskdubbelBeräkna SkattLön(int lön, ut dubbel taxedAmount)
{
} - Inuti funktionen lägger du till beräkningen för hemtagslönen efter skatt. Returnera resultatet.
statiskdubbelBeräkna SkattLön(int lön)
{
konstdubbel skattesats = 0.3;
dubbel takeHomeSalary = lön - (lön * taxRate);
lämna tillbaka taHemLön;
} - Ta bort standardutgången "Hello World" i huvudfunktionen. Anropa istället funktionen CalculateTaxSalary(). Skriv ut resultatet som returneras från funktionen till konsolen.
statisktomhet Main (sträng[] args)
{
dubbel takeHomeSalary = BeräknaTaxLön(100000);
Trösta. WriteLine($"Hämtningslönen från $ 100,000är $ {takeHomeSalary}");
} - Ändra funktionen CalculateTaxSalary() så att du också behöver returnera ett andra värde. Det andra värdet kommer att innehålla det beskattade beloppet. Eftersom du redan använder return-satsen för att returnera ett värde, använd istället en out-parameter. Lägg till en taxedAmount out-parameter till metodsignaturen.
statiskdubbelBeräkna SkattLön(int lön, ut dubbel taxedAmount)
- Inuti funktionen CalculateTaxSalary() beräknar du det skattebelopp som tillämpas på lönen. Tilldela resultatet till variabeln taxedAmount.
statiskdubbelBeräkna SkattLön(int lön, ut dubbel taxedAmount)
{
konstdubbel skattesats = 0.3;
taxedAmount = lön * taxRate;
dubbel takeHomeSalary = lön - taxedAmount;
lämna tillbaka taHemLön;
}
Hur man returnerar ett värde från en ut-parameter
För att hämta värdet på en ut-parameter, anropa funktionen och lagra värdet på ut-parametern i en lokal variabel.
- Ta bort den befintliga koden från Main()-funktionen. Skapa en ny variabel för att lagra det beskattade beloppet.
dubbel taxedAmount = 0;
- Anropa funktionen CalculateTaxSalary(). Funktionen kommer att returnera hemtagslönen med hjälp av returbeskedet. Funktionen hämtar också värdet från variabeln taxedAmount med hjälp av parametern ut. Det kommer att lagra värdet i taxedAmount-variabeln i huvudfunktionen.
dubbel takeHomeSalary = BeräknaTaxLön(100000, ut taxedAmount);
Trösta. WriteLine($"Hämtningslönen från $ 100,000är $ {takeHomeSalary}. Beloppet som beskattades var $ {taxedAmount}.");
Hur man använder flera ut-parametrar
För att använda flera ut-parametrar, skapa en funktion och lägg till nyckelordet ut till alla parametrar du vill returnera ett värde från.
- Skapa en ny funktion som heter MultipleValues(). Lägg till tre parametrar och tilldela ett värde till var och en av dem.
statisktomhetFlera värden(ut int a, ut int b, ut int c)
{
a = 10;
b = 20;
c = 30;
} - I funktionen Main() skapar du lokala variabler för vart och ett av de tre värdena.
int a = 0;
int b = 0;
int c = 0; - Anropa MultipleValues()-funktionen för att returnera de tre värdena genom ut-parametrarna.
MultipleValues (ut a, ut b, ut c);
Trösta. WriteLine($"a: {a}, b: {b}, c: {c}");
Hur man kör konsolapplikationen
När du kör programmet öppnas ett kommandopromptfönster för att visa alla utskrivna uttalanden i din applikation.
- Högst upp i Visual Studio-applikationen klickar du på den gröna uppspelningsknappen för att starta konsolapplikationen.
- Visual Studio kommer att kompilera programmet och öppna en kommandotolk. Kommandotolken visar de utmatade resultaten. Detta inkluderar de värden som funktionerna returnerade som utparametrar.
Använda ut-parametrar i en C#-applikationskonsol
I C# låter ut-parametrar dig returnera mer än ett värde från en funktion. Du kan deklarera flera ut-parametrar i signaturen för metoden och tilldela värden till dessa variabler i funktionen. När du anropar funktionen kan du hämta värdena som är lagrade i dessa ut-parametrar och använda dem på andra platser i applikationen.
Om du har att göra med komplexa objekt och grupper av data kan du också returnera objekt baserat på en klass. Du kan utforska mer om hur du skapar och använder klasser i C#.