Molto probabilmente, le funzioni incorporate o primitive di C # la maggior parte includono un ciclo (al codice macchina livello) quando eseguito.
BTW, anche l'assegnazione degli oggetti coinvolge indirettamente un ciclo. A volte, un'assegnazione di oggetti può attivare il garbage collector , che è in loop.
Si noti che un programma senza loop qualsiasi è un automa a stati finiti, e sicuramente terminerà (in meno di un secondo, tipicamente - intuitivamente la CPU sta elaborando più di una istruzione per nano-secondo, e in pochi gigabyte puoi codificare circa un miliardo di istruzioni macchina, senza loop il processore potrebbe interpretare poi rapidamente!)
Naturalmente, le chiamate di funzione, in particolare le ricorsive chiamate di funzione, sono un modo di fare il ciclo. E le chiamate ricorsive di coda sono esattamente un costrutto ciclico (che non consuma alcun stack di chiamate spazio).
Leggi anche il SICP e circa lambda calcolo , completezza di Turing (in particolare la completezza accidentale di Turing è molto divertente), funzioni ricorsive primitive , macchina ad accesso casuale , ...
A proposito, imparerai molto studiando il codice sorgente del software gratuito , e Microsoft ha persino fatto il codice sorgente di C # open source . Con un sistema Linux sul tuo laptop avrai ancora più software gratuito ...