Куайн — это компьютерная программа, которая не принимает входных данных и на выходе создает копию собственного исходного кода. В 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#. Есть много других творческих способов добиться того же результата. Помните, что куайн – это уникальная и интересная концепция программирования, которая бросает вызов вашему пониманию самовоспроизводящегося кода.