Sobes.tech
Junior — Middle

Ինչ տարրերից է բաղկացած C#-ի foreach օպերատորի ներքին կառուցվածքը։

sobes.tech AI

Պատասխան AI-ից

C#-ում foreach օպերատորի ներսի կառուցվածքը հիմնված է 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-ին հասանելիության մանրամասները։