Junior
Mis on laiendamise meetodite olemus?
sobes.tech AI
Vastus AI-lt
Laiendamise meetodid (extension methods) võimaldavad lisada olemasolevatele tüüpidele uusi meetodeid ilma nende lähtekoodi muutmata või uue päriliku tüübi loomata.
Põhimõte on järgmine:
- Nad on deklareeritud statiliste meetoditena statilises klassis.
- Esimene laiendamise meetodi parameeter on märgitud võtmesõnaga
thisenne oma tüüpi. See parameeter näitab laiendatavat tüüpi. - Nad kutsutakse välja nagu oleksid nende laiendatava tüübi eksemplarimeetodid.
Näide:
// Statiline klass laiendamise meetodite jaoks
public static class StringExtensions
{
// Laiendamise meetod string-tüüpi
public static string Truncate(this string input, int maxLength)
{
if (string.IsNullOrEmpty(input))
{
return input;
}
return input.Length <= maxLength ? input : input.Substring(0, maxLength) + "...";
}
}
// Laiendamise meetodi kasutamine
string myString = "This is a long string.";
string truncatedString = myString.Truncate(10); // Kutsutakse välja nagu eksemplarimeetod
// Võrdväärne otse statilise meetodi kutsumisega
string truncatedStringDirect = StringExtensions.Truncate(myString, 10);
Eelised:
- Parandab koodi loetavust, võimaldades kasutada "punkt" süntaksit objektidel.
- Võimaldab lisada funktsionaalsust "sealed" (suletud) klassidele või väliste raamatukogude tüüpidele, ilma nende lähtekoodi muutmata.
- Lihtsustab LINQ päringute kirjutamist, kuna paljud LINQ meetodid on implementeeritud laiendamise meetoditena.