Metoder er funksjoner definert i en klasse. C# støtter rike parameterfunksjoner — valgfrie/navngitte argumenter, ref/out/in modifikatorer, params arrays — og (flere metoder med samme navn men forskjellige parametere).
public int Add(int a, int b) => a + b; // expression-bodied (concise)
public string Greet(string name, string greeting = "Hello") // default parameter
{
return $"{greeting}, {name}";
}
Greet("Ann"); // "Hello, Ann"
Greet("Ann", greeting: "Hi"); // named argument
Metoder angir en returtype, navn og parametere. Standardparametere gjør argumenter valgfrie, og navngitte argumenter lar deg sende ved navn (tydeligere, kan hoppe over valgfrie).
// ref — pass by reference (method can modify the caller's variable)
void Increment(ref int x) { x++; }
int n = 5; Increment(ref n); // n is now 6
// out — for returning multiple values (must be assigned in the method)
bool TryParse(string s, out int result) { result = ...; return true; }
if (int.TryParse("42", out int value)) { } // the common TryX pattern
// in — pass by reference but READ-ONLY (performance for large structs)
void Process(in LargeStruct data) { }
out brukes mye i TryParse-mønsteret (returnerer et suksessflagg pluss resultatet sikkert); ref tillater endring av anropserens variabel; in sender store structs effektivt uten kopiering.
// params — variable number of arguments
int Sum(params int[] numbers) => numbers.Sum();
Sum(1, 2, 3, 4); // any number
// OVERLOADING — same name, different parameters
void Print(int x) { }
void Print(string s) { }
void Print(int x, int y) { }
Print(5); // calls the int version — resolved by argument types
Overloading lar flere metoder dele et navn, skilt by parametertyper/antall — kompilatoren velger den som matcher. params godtar et variabelt antall argumenter.
Metoder er byggesteinene for oppførsel i C#, og å forstå deres rike parameterfunksjoner er viktig for å skrive fleksibel, uttrykksfull kode.
Å vite hvordan man definerer metoder (inkludert kortfattet expression-bodied syntaks), bruker standardparametere og navngitte parametere (for valgfrie argumenter og lesbare kall), og bruker metodeoverstyring (samme navn, forskjellige parametere — for intuitive APIer som håndterer forskjellige argumenttyper) er hverdagskunnskaper.
Parametermodifikatorene er særlig viktig å forstå: out brukes mye i det allestedsnærværende TryParse-mønsteret (int.TryParse(s, out var result) — returnerer sikkert et suksessflagg og resultat uten unntak, et vanlig, idiomatisk C#-mønster), ref gjør det mulig å endre anropserens variabel, og in sender store structs med referanse for ytelse.
Å forstå disse — metoder, parameterfunksjoner (valgfrie/navngitte/params), overloading for fleksible APIer, og ref/out/in modifikatorer (spesielt out-basert TryParse idiom) — er grunnleggende for både å skrive C#-metoder og bruke de mange .NET-APIene som er avhengige av disse funksjonene.
Siden metoder og deres parametere er sentrale for all C#-kode, og siden funksjoner som overloading, valgfrie parametere og TryX-mønsteret oppstår konstant, er det å mestre dem kjernekunnskap som du må kunne for effektiv C#-utvikling.