Considera il seguente programma C #, l'ho inviato su codegolf come risposta per creare un loop senza loop:
class P{
static int x=0;
~P(){
System.Console.WriteLine(++x);
new P();
}
static void Main(){
new P();
}
}
Questo programma sembra un ciclo infinito nella mia ispezione, ma sembra funzionare per diverse migliaia di iterazioni, quindi il programma termina correttamente senza errori (non vengono generati errori). È una violazione delle specifiche che alla P
fine il finalizzatore non viene chiamato?
Chiaramente questo è un codice stupido, che non dovrebbe mai apparire, ma sono curioso di sapere come il programma potrebbe mai completarsi.
Codice originale golf post: /codegolf/33196/loop-without-looping/33218#33218