Создание Quines на C#: примеры самовоспроизводящегося кода

Куайн — это компьютерная программа, которая не принимает входных данных и на выходе создает копию собственного исходного кода. В C# куайн можно создать различными методами. Вот несколько примеров:

Метод 1: использование строковой интерполяции

using System;
class Program
{
    static void Main()
    {
        string sourceCode = @"
using System;
class Program
{
    static void Main()
    {
        string sourceCode = @""{0}"";
        Console.WriteLine(sourceCode, sourceCode.Replace(@""\n"", Environment.NewLine).Replace(@""\""{0}\""", string.Format(@""\""{0}\""", sourceCode)));
    }
}
";
        Console.WriteLine(sourceCode, sourceCode.Replace("\n", Environment.NewLine).Replace("\"{0}\"", string.Format("\"{0}\"", sourceCode)));
    }
}

Метод 2: использование отражения

using System;
using System.Reflection;
class Program
{
    static void Main()
    {
        string sourceCode = ((Func<string>)(() =>
        {
            string fullSourceCode = @"using System;
using System.Reflection;
class Program
{
    static void Main()
    {
        string sourceCode = ((Func<string>)(() =>
        {
            string fullSourceCode = @""{0}"";
            return fullSourceCode.Replace(""\\n"", Environment.NewLine).Replace(""\""{0}\""", string.Format(""\""{0}\""", fullSourceCode));
        }))();
        Console.WriteLine(sourceCode);
    }
}
";
            return fullSourceCode.Replace("\n", Environment.NewLine).Replace("\"{0}\"", string.Format("\"{0}\"", fullSourceCode));
        }))();
        Console.WriteLine(sourceCode);
    }
}

Это всего лишь пара примеров того, как можно создать квайн на C#. Есть много других творческих способов добиться того же результата. Помните, что куайн – это уникальная и интересная концепция программирования, которая бросает вызов вашему пониманию самовоспроизводящегося кода.