Sobes.tech
Junior — Middle

Από ποια στοιχεία αποτελείται η εσωτερική δομή του τελεστή foreach στη C#;

sobes.tech AI

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

Η εσωτερική δομή του τελεστή foreach στη C# βασίζεται στη χρήση της διεπαφής IEnumerable και της μεθόδου GetEnumerator(). Τα βασικά στοιχεία:

  • Συλλογή που υλοποιεί το IEnumerable — το αντικείμενο πάνω στο οποίο γίνεται η επανάληψη.
  • Επαναμετρητής (enumerator), που υλοποιεί το IEnumerator — το αντικείμενο που ελέγχει την επανάληψη στη συλλογή.
  • Μέθοδος MoveNext() — μετακινεί τον δείκτη στο επόμενο στοιχείο.
  • Ιδιότητα Current — επιστρέφει το τρέχον στοιχείο της συλλογής.

Παράδειγμα του τι συμβαίνει στο παρασκήνιο:

IEnumerable collection = ...;
IEnumerator enumerator = collection.GetEnumerator();

while (enumerator.MoveNext())
{
    var item = enumerator.Current;
    // σώμα της επανάληψης foreach
}

Έτσι, το foreach απλοποιεί τη δουλειά με τους επαναμετρητές, κρύβοντας τις λεπτομέρειες της κλήσης σε GetEnumerator(), MoveNext() και πρόσβαση σε Current.