今天是情人节,无聊中就把以前写的这个程序发一下:
class writeme{static void Main(){string s="class writeme{{static void Main(){{string s={0}{1}{0};System.Console.Write(s,(char)34,s);}}}}"; System.Console.Write(s,(char)34,s);}}
有趣的是,这个C#程序编译运行后,又会在控制台中输出和自身一模一样的源代码。注意,输出自己的源代码确实是靠自身代码的运行而产生的。
从逻辑学上说,自我包含往往会产生逻辑悖论,但这个程序却不会。
你知道为什么吗?
李战(leadzen).深圳 2008-2-14
class writeme{static void Main(){string s="class writeme{{static void Main(){{string s={0}{1}{0};System.Console.Write(s,(char)34,s);}}}}"; System.Console.Write(s,(char)34,s);}}
有趣的是,这个C#程序编译运行后,又会在控制台中输出和自身一模一样的源代码。注意,输出自己的源代码确实是靠自身代码的运行而产生的。
从逻辑学上说,自我包含往往会产生逻辑悖论,但这个程序却不会。
你知道为什么吗?
李战(leadzen).深圳 2008-2-14