What's the best coding practice?

1.
Code:
private int number;
public int { get { return number;} set { number = value; } }
2.
Code:
public int Number{ get; set; }
3.
Code:
private int number;
public int GetNumber{ get { return number; } }
public int SetNumber{ set { number = value; } }
I see the third one being used in Visual Studio. Is there any particular reason why either of these are bad ( or good ) ?