333.
Will this compile:

struct Foo
{
  int x;
  public Foo()
  {
  }
}
class FooTester
{
  [STAThread]
  static void Main(string[] args)
  {
    Foo f = new Foo();
  }
}

Although the CLR allows it, C# does not allow structs to have a default parameterless constructor. The reason is that, for a value type, compilers by default neither generate a default constructor, nor do they generate a call to the default constructor. So, even if you happened to define a default constructor, it will not be called and that will only confuse you. To avoid such problems, the C# compiler disallows definition of a default constructor by the user. And because it doesn't generate a default constructor, you can't initialize fields when defining them