Sobes.tech
Junior

Cos'è un metodo di estensione in C#?

sobes.tech AI

Risposta dell'AI

Il metodo di estensione (Extension Method) è un metodo statico che può essere chiamato come se fosse un metodo del tipo esteso, anche se in realtà è definito al di fuori di quel tipo.

Caratteristiche principali:

  • È un metodo statico dichiarato in una classe statica.
  • Il primo parametro del metodo di estensione deve essere contrassegnato con la parola chiave this e indicare il tipo che si desidera estendere.
  • I metodi di estensione non hanno accesso ai membri privati e protetti del tipo esteso.
  • Permettono di aggiungere funzionalità ai tipi esistenti senza modificare il loro codice sorgente o usare l'ereditarietà.

Esempio di creazione e utilizzo:

  1. Definizione di una classe statica e di un metodo di estensione:

    public static class StringExtensions // Classe statica
    {
        public static string ToTitleCase(this string input) // Metodo di estensione per il tipo string
        {
            if (string.IsNullOrEmpty(input))
            {
                return input;
            }
            // Logica semplice di conversione in Title Case
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
        }
    }
    
  2. Utilizzo del metodo di estensione:

    string myString = "hello world";
    string titleCaseString = myString.ToTitleCase(); // Chiamata come se fosse un metodo normale di string
    // titleCaseString ora contiene "Hello World"