考虑下面的 C # 程序,我将它作为不循环创建循环的答案提交给 codegolf:
class P{
static int x=0;
~P(){
System.Console.WriteLine(++x);
new P();
}
static void Main(){
new P();
}
}
在我的检查中,这个程序看起来像一个无限循环,但它似乎运行了几千次,然后程序成功终止,没有错误(没有抛出错误)。最终没有调用 P
的终结器是否违反了规范?
显然,这是愚蠢的代码,永远不应该出现,但我很好奇,该程序如何能够完成。
原代码高尔夫职位: Https://codegolf.stackexchange.com/questions/33196/loop-without-looping/33218#33218