C# Quine Problem
c#, quine
Solution
I think there is a pair of braces missing - instead of `{10}` it should read `{1}{0}`.
class c {
static void Main(){
string s = "class c{{static void Main(){{string s={0}{1}{0};System.Console.Write(s,(char)34,s);}}}}";
System.Console.Write(s,(char)34,s); //<<-- exception on this line
}
}
Problem
I am trying to understand how this piece of self-replicating code works (found here), but the problem is I can't get it to run as-is: ``` 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 } } ``` It's throwing an exception on writeline: Index (zero based) must be greater than or equal to zero and less than the size of the argument list. Can someone help - in particular about the formatting option {0}{10}? I got it working like this (see below) but it's longer than the original - I am curious how the original could have worked as-is in the 1st place: ``` 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); } } ```