quine是一个打印自己的源代码而无需从文件系统中打开的程序。
这是C#中这样一个quine的例子:
class Q{static void Main(){var s="class Q{{static void Main(){{var s={1}{0}{1};System.Console.Write(s,s,'{1}');}}}}";System.Console.Write(s,s,'"');}}
但这个解决方案对我来说似乎非常混乱和不优雅。这是一个可怕的程序,因为无论何时更改源代码,都必须在两个位置执行,即a big programming no-no。
有没有一种很好的方法可以在C#中编写一个不违反DRY原则的quine?