Introduktion till funktioner i C #

I C # är en funktion ett sätt att förpacka kod som gör något och sedan returnerar värdet. Till skillnad från i C, C ++ och vissa andra språk finns funktioner inte av sig själva. De är en del av en objektorienterad tillvägagångssätt för programmering.

Ett program för att hantera kalkylblad kan till exempel inkludera en summa () -funktion som en del av ett objekt.

I C # kan en funktion kallas en medlemsfunktion - den är medlem i en klass - men den terminologin är kvar från C ++. Det vanliga namnet på det är en metod.

Instansmetoden

Det finns två typer av metoder: instansmetod och statisk metod. Denna introduktion omfattar instansmetoden.

Exemplet nedan definierar en enkel klass och kallar den Testa. Detta exempel är ett enkelt konsolprogram, så detta är tillåtet. Vanligtvis måste den första klassen som definieras i C # -filen vara formklassen.

Det är möjligt att ha en tom klass som den här klasstest {}, men det är inte användbart. Även om det ser tomt ut, ärver det - som alla C # -klasser - från objektet som innehåller det och innehåller ett standard konstruktör i huvudprogrammet.

instagram viewer
var t = nytt test ();

Den här koden fungerar, men den kommer inte att göra någonting när den körs förutom att skapa en instans t av den tomma testklassen. Koden nedan lägger till en funktion, en metod som matar ut ordet "Hej."

använder System;
namnutrymme funcex1
{
klass test
{
public void SayHello ()
{
Trösta. WritLine ("Hej");
}
}
klassprogram
{
static void Main (string [] args)
{
var t = nytt test ();
t. Säg hej() ;
Trösta. ReadKey ();
}
}
}

Detta kodexempel inkluderar Trösta. ReadKey (), så när det kör, visar det konsolfönstret och väntar på en nyckelpost som Enter, Space eller Return (inte skift-, Alt- eller Ctrl-tangenterna). Utan det skulle det öppna konsolfönstret, skicka ut "Hej" och sedan stänga allt med ett ögonblick.

Funktionen Säg hej är ungefär en så enkel funktion som du kan ha. Det är en offentlig funktion, vilket betyder att funktionen är synlig utanför klassen.

Om du tar bort ordet offentlig och försök att sammanställa koden misslyckas med ett kompileringsfel "funcex1.test. SayHello () 'är otillgänglig på grund av dess skyddsnivå. "Om du lägger till ordet" privat "där ordet public var och kompilerar om igen, får du samma sammanställningsfel. Ändra bara det tillbaka till "offentligt".

Ordet tomhet i funktionen betyder att funktionen inte returnerar några värden.

Typiska funktionsdefinitionsegenskaper

  • Åtkomstnivå: offentlig, privat plus några andra
  • Returvärde>: ogiltigt eller vilken typ som helst som int
  • Metodnamn: SayHello
  • Några metodparametrar: ingen för nu. Dessa definieras i parenteserna () efter metodnamnet

Koden för definitionen av en annan funktion, MyAge (), är:

public int MyAge ()
{
retur 53;
}

Lägg till det direkt efter Säg hej() i det första exemplet och lägg till dessa två rader innan Trösta. ReadKey ().

var ålder = t. Min ålder();
Trösta. WritLine ("David är {0} år gammal", ålder);

Att köra programmet visar nu detta:

Hej
David är 53 år,

De var ålder = t. Min ålder(); anrop till metoden returnerade värdet 53. Det är inte den mest användbara funktionen. Ett mer användbart exempel är kalkylarkets Sum-funktion med en matris ints, startindex och antal värden som ska summeras.

Detta är funktionen:

public float Sum (int [] -värden, int startindex, int endindex)
{
var totalt = 0;
för (var index = startindex; index <= endIndex; index ++)
{
totalt + = värden [index];
}
avkastning totalt;
}

Här är tre användningsfall. Det här är koden som ska läggas till i Main () och ringa för att testa Sumfunktionen.

var-värden = nytt int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9,10};
Trösta. WritLine (t. Summa (värden, 0,2)); // Bör vara 6
Trösta. WritLine (t. Summa (värden, 0,9)); // bör vara 55
Trösta. WritLine (t. Summa (värden, 9,9)); // bör vara 10 eftersom 9: e värdet är 10

För slinga lägger till värdena i området startindex till endindex, så för startindex = 0 och endindex = 2 är detta summan av 1 + 2 + 3 = 6. Medan för 9,9 läggs det bara till värdena [9] = 10.

Inom funktionen initialiseras den lokala variabeln till 0 och läggs sedan till de relevanta delarna av matrisvärdena.

instagram story viewer