Является ли пространство имен отражения строительным блоком для написания квинэ в 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));          
    }   
} 

Вот еще один вопрос переполнения стека с похожей темой. Вышеупомянутая квинна отсюда.

Другие вопросы по тегам