Является ли пространство имен отражения строительным блоком для написания квинэ в C#?
Нужно ли использовать рефлексию для написания программы на C#? Я читал в другом месте - quine, что открытие исходного файла с диска "обманывает", поэтому я предполагаю, что использование.net рефлектор и / или открытие исходного файла с помощью System.IO - это взлом.
Есть ли другие способы, кроме использования Reflection, которые я должен рассмотреть.
1 ответ
Решение
На самом деле, вам не нужно размышление или что-то еще, чтобы создать квайн, просто немного манипуляции со струнами и некоторое время.
using System;
class Q
{
static void Main()
{
string s = "using System;class Q{2}static void Main(){2}string s ={1}{0}{1};
Console.Write(string.Format(s, s, (char)34, (char)123, (char)125));{3}{3}";
Console.Write(string.Format(s, s, (char)34, (char)123, (char)125));
}
}
Вот еще один вопрос переполнения стека с похожей темой. Вышеупомянутая квинна отсюда.