Londoner wrote:
Here is another one for you:

class Class1
{
      public int c = true;  // <---- It compiles!!
       
      public Class1(): this(0) {}
      public Class1(int i): this() {} 
      [STAThread]
      static void Main(string[] args)
      {
             
      }
}



It compiles because there is no syntax error, and the compiler can make code for it, just as it does for this:

public void First()
{
  this.Second();
}

public void Second()
{
  this.First();
}

It's no different. The compiler isn't fooled, it is doing exactly what you told it to do.