Metodit ovat funktioita, jotka on määritelty luokassa. C# tukee runsaita parametriominaisuuksia — valinnaisia/nimettyjä argumentteja, ref/out/in -muuntajia, -taulukoita — ja (useita metodeja samalla nimellä mutta eri parametreilla).
Metodit ovat funktioita, jotka on määritelty luokassa. C# tukee runsaita parametriominaisuuksia — valinnaisia/nimettyjä argumentteja, ref/out/in -muuntajia, -taulukoita — ja (useita metodeja samalla nimellä mutta eri parametreilla).
paramspublic 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
Metodit määrittävät paluutyypin, nimen ja parametrit. Oletuparametrit tekevät argumenteista valinnaisia, ja nimetyt argumentit antavat sinun välittää nimen mukaan (selkeämpää, voit ohittaa valinnaisia).
// 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 on laajalti käytössä TryParse-mallissa (palautetaan onnistumislippu ja tulos turvallisesti); ref sallii kutsujan muuttujan muokkaamisen; in välittää suuret rakenteet tehokkaasti ilman kopioita.
// 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
Ylikuormitus sallii useiden metodien jakaa nimen, erotettuna parametrityypeillä/määrällä — kääntäjä valitsee vastaavan. params hyväksyy muuttuvan määrän argumentteja.
Metodit ovat C#:n käyttäytymisen rakennuspalikoita, ja niiden rikkaitten parametriominaisuuksien ymmärtäminen on tärkeää joustavaa ja ekspressiivistä koodia kirjoitettaessa.
Tietäminen kuinka määritellä metodit (mukaan lukien tiivis lausekkeisiin perustuva syntaksi), käyttää oletuisesti ja nimettyjä parametreja (valinnaisia argumentteja ja luettavia kutsuja varten) ja soveltaa metodin ylikuormitusta (sama nimi, eri parametrit — intuitiivisia API:ita joita käsitellään eri argumenttityyppejä) on päivittäistä tietoa.
Parametrien muuntajat ovat erityisen tärkeitä ymmärtää: out on laajalti käytössä kaikkialla olevassa TryParse-mallissa (int.TryParse(s, out var result) — turvallisesti palautetaan onnistumislippu ja tulos ilman poikkeuksita, tavallinen, idiomaattinen C# -malli), ref mahdollistaa kutsujan muuttujan muokkaamisen, ja in välittää suuret rakenteet viitteellä suorituskyvyn parantamiseksi.
Näiden ymmärtäminen — metodit, parametriominaisuudet (valinnaisia/nimettyjä/params), ylikuormitus joustaville API:ille, ja ref/out/in -muuntajat (erityisesti out-pohjainen TryParse-idiomi) — on perustavanlaatuista sekä C#-metodien kirjoittamiselle että monille .NET-API:ille, jotka perustuvat näihin ominaisuuksiin.
Koska metodit ja niiden parametrit ovat keskeisiä kaikelle C#-koodille, ja koska ominaisuudet kuten ylikuormitus, valinnaiset parametrit ja TryX-malli esiintyvät jatkuvasti, niiden hallinta on perustavaa, välttämätöntä tietoa tehokkaalle C#-kehitykselle.
Kirjasto IT-haastattelukysymyksiä yksityiskohtaisine vastauksineen — Juniorista Senioriin.
Lahjoita