Sobes.tech
Junior

Τι είναι μια μέθοδος επέκτασης στη C#;

sobes.tech AI

Απάντηση από AI

Η μέθοδος επέκτασης (Extension Method) είναι μια στατική μέθοδος που μπορεί να κληθεί σαν να ήταν μέθοδος του τύπου που επεκτείνει, αν και στην πραγματικότητα ορίζεται εκτός αυτού του τύπου.

Βασικά χαρακτηριστικά:

  • Είναι μια στατική μέθοδος που δηλώνεται σε μια στατική κλάση.
  • Ο πρώτος παράμετρος της μεθόδου επέκτασης πρέπει να σημειωθεί με τη λέξη-κλειδί this και να δείχνει τον τύπο που θέλετε να επεκτείνετε.
  • Οι μέθοδοι επέκτασης δεν έχουν πρόσβαση σε ιδιωτικά και προστατευμένα μέλη του επεκτεινόμενου τύπου.
  • Επιτρέπουν την προσθήκη λειτουργικότητας σε υπάρχοντες τύπους χωρίς να αλλάξουν τον πηγαίο κώδικα ή να χρησιμοποιήσουν κληρονομικότητα.

Παράδειγμα δημιουργίας και χρήσης:

  1. Ορισμός μιας στατικής κλάσης και μιας μεθόδου επέκτασης:

    public static class StringExtensions // Στατική κλάση
    {
        public static string ToTitleCase(this string input) // Μέθοδος επέκτασης για τον τύπο string
        {
            if (string.IsNullOrEmpty(input))
            {
                return input;
            }
            // Απλή λογική μετατροπής σε Title Case
            return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
        }
    }
    
  2. Χρήση της μεθόδου επέκτασης:

    string myString = "hello world";
    string titleCaseString = myString.ToTitleCase(); // Κλήση σαν να ήταν μια κανονική μέθοδος string
    // titleCaseString τώρα περιέχει "Hello World"