Я пытаюсь понять, как работает этот фрагмент самовоспроизводящегося кода (найдено здесь ), но проблема в том, что я не могу запустить как есть
class c {
static void Main(){
string s = "class c{{static void Main(){{string s={0}{10};System.Console.Write(s,(char)34,s);}}}}";
System.Console.Write(s,(char)34,s); //<<-- exception on this line
}
}
Выдает исключение при записи: Индекс (на основе нуля) должен быть больше или равен нулю и меньше размера списка аргументов.
Может ли кто-нибудь помочь - в частности, о параметре форматирования {0} {10}?
У меня получилось так (см. Ниже), но оно длиннее оригинала - мне любопытно, как оригинал мог работать как есть на 1-м месте:
class c {
static void Main(){
string s = "class c{{static void Main(){{string s={0}{1}{2};System.Console.Write(s,(char)34,s,(char)34);}}}}";
System.Console.Write(s,(char)34,s,(char)34);
}
}