Some more C# 6.0 changes

Getter-only auto-properties

How it used to be

public class Point
{
    public int X { get; private set; }
    public int Y { get; private set; }
}

What you can do now:

public class Point
{
    public int X { get; }
    public int Y { get; }
}

What I think: This is basic syntactic sugar and has a fairly low impact on things overall, so I'm all for it. I don't see this being abused like some other C# 6.0 features could be.

Short hand string manipulation

How it used to be

var formatted = string.Format("X is {0} and Y is {1}", x, y);

What you can do now:

var formatted = "X is \{x} and Y is \{y}";

What I think: This is an interesting change and will reduce the amount of code developers have to write when formatting strings which is a good thing. Additionally, the variables in the string are actually names as opposed to being argument indexes which will absolutely cut down on the confusion or misplacement of variables within large string formats.

On the downside however, I'm not sure how computed values will make it in to this structure (where x was (y*34) and not a variable for example). Time will tell.

Index initialisers

How it used to be

var myclass = new MyClass();
myclass["x"] = 1;
myclass["y"] = 2;

What you can do now:

var myclass = new MyClass {
	["x"] = 1,
	["y"] = 2
};

What I think: This is another small change will will just cut down on the verbosity of some initialisation code but won't have a large impact overall. Still, a step in the right direction.

Conclusion

These are some nice changes which will reduce the amount of code that developers write day to day, and we all know that the less code there is, the less bugs can exist and that's a great for code quality and for reducing development times.