public override void Wykonaj() { foreach (KlocekPionowy klocekPionowy in Zawartość) { if (SkokPętli) { break; } else { if (klocekPionowy.PunktPrzerwania) { KlocekPionowyZZawartością klocekPionowyZZawartością = this; while (!(klocekPionowyZZawartością is RozpoczęcieProgramu)) { klocekPionowyZZawartością = klocekPionowyZZawartością.Rodzic; } klocekPionowyZZawartością.Debugowanie = true; } klocekPionowy.AktualnieWykonywany = true; if (klocekPionowy.PunktPrzerwania || klocekPionowy.KrokPoKroku) { Semafor.Opuść(); } klocekPionowy.Wykonaj(); klocekPionowy.AktualnieWykonywany = false; } } }
public static void ZresetujRekurencyjnieFlagęSkokuWPętli(KlocekPionowyZZawartością klocekPionowyZZawartością) { klocekPionowyZZawartością.SkokPętli = false; foreach (KlocekPionowyZZawartością klocek in klocekPionowyZZawartością.Zawartość.Where(k => k is KlocekPionowyZZawartością).Cast <KlocekPionowyZZawartością>()) { ZresetujRekurencyjnieFlagęSkokuWPętli(klocek); } }
public override object Clone() { KlocekPionowyZZawartością kopia = (KlocekPionowyZZawartością)base.Clone(); foreach (KlocekPionowy klocekPionowy in Zawartość) { KlocekPionowy kopiaKlockaPionowego = (KlocekPionowy)klocekPionowy.Clone(); kopiaKlockaPionowego.Rodzic = kopia; kopia.Zawartość.Add(kopiaKlockaPionowego); } return(kopia); }