Take this code:

```
public int Foo {get;set;}

```

As opposed to this more complete manually written code:

```
private int x;
public int X 
{
    get { return x; }
    set { x = value; }
}

```

In the first example, does the compiler *automatically create* a `private` `foo` property?

I am not sure if this convention I have seen of having a *lowercase* `private` property masked by a `public`-facing *uppercase* one is just that, convention, or if it's actually part of the language/compiler, and you can either write it out or let it be done for you.