Sobes.tech
Junior

Ce este o metodă de extensie în C#?

sobes.tech AI

Răspuns de la AI

Metoda de extensie (Extension Method) este o metodă statică care poate fi apelată ca și cum ar fi o metodă a tipului extins, deși în realitate este definită în afara acestui tip.

Caracteristici principale:

  • Este o metodă statică declarată într-o clasă statică.
  • Primul parametru al metodei de extensie trebuie marcat cu cuvântul cheie this și indică tipul pe care doriți să îl extindeți.
  • Metodele de extensie nu au acces la membrii privați și protejați ai tipului extins.
  • Permite adăugarea de funcționalități la tipuri existente fără a modifica codul sursă sau a folosi moștenirea.

Exemplu de creare și utilizare:

  1. Definirea unei clase statice și a unei metode de extensie:

    public static class StringExtensions // Clasă statică
    {
        public static string ToTitleCase(this string input) // Metodă de extensie pentru tipul string
        {
            if (string.IsNullOrEmpty(input))
            {
                return input;
            }
            // Logică simplă de conversie la Title Case
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
        }
    }
    
  2. Utilizarea metodei de extensie:

    string myString = "hello world";
    string titleCaseString = myString.ToTitleCase(); // Apel ca și cum ar fi o metodă normală de string
    // titleCaseString acum conține "Hello World"