C#Quine问题

C#Quine问题,c#,quine,C#,Quine,我试图理解这段自我复制的代码是如何工作的(已找到),但问题是我无法让它按原样运行 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); //<<-- exceptio

我试图理解这段自我复制的代码是如何工作的(已找到),但问题是我无法让它按原样运行

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

    }
}

你能把原作和你的作品联系起来吗

s={0}{1}{0}

我认为缺少了一对大括号-它应该是
{1}{0}
而不是
{10}

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

    }
}
c类{
静态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);//我相信原版应该是这样的:

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);
  }
}
也就是说,
{0}{10}
应该改为
{0}{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

    }
}
格式字符串中的
{0}
用于在字符串前后加引号