One of the neat new features of C# 3.0 is the automatic properties syntax. It’s basically a quicker and simpler way to declare properties, as you don’t need to create a private backing object for each one as you’ve always had to. Here’s an example:

public class Person
{
    // Original way:
    private string \_name;
    public string Name
    {
        get { return \_name; }
        set { \_name = value; }
    }

    // New, automatic property, way:
    public int Age { get; set; }
}

Using the second example, the compiler will basically create a private Age member in the background and use in the generated getter/setter of the new property. If it’s a numeric type, as Age is, it will default to 0. If it’s a reference type, such as another class or a Nullable type (i.e. int?), it’ll default to null.

Now for the semi-gotcha: strings are reference types, so they’ll default to null. This may not be a problem in your situation, but I personally like to default all of my string to string.Empty (unless the situation calls for a null, which I find isn’t very often). I just don’t like the hassle of dealing with null strings, though the string.IsNullOrEmpty() method helps mitigate that.

So there ya go. Take it for what it’s worth - something to keep in mind when using the new automatic property feature.