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,'"');}}
不过,这个解决方案对我来说似乎非常混乱和不雅。这是一个很难维护的程序,因为无论何时更改源代码,都必须在两个地方进行,这是一个很大的编程禁忌。
有没有一种在 C# 中编写不违反 DRY 原则的 quine 的好方法?