Рассмотрим следующую программу на С#, я отправил ее на codegolf в качестве ответа на создание цикла без цикла:
class P{
static int x=0;
~P(){
System.Console.WriteLine(++x);
new P();
}
static void Main(){
new P();
}
}
Эта программа выглядит как бесконечный цикл в моей проверке, но, похоже, она запускается в течение нескольких тысяч итераций, а затем программа успешно завершается без ошибок (ошибок не выбрасывается). Является ли это нарушением спецификации, что финализатор для P
в конечном итоге не называется?
Ясно, что это глупый код, который никогда не должен появляться, но мне любопытно, как программа могла бы завершиться.
Оригинальный код для гольфа:: https://codegolf.stackexchange.com/info/33196/loop-without-looping/33218#33218