Working with other colleagues, I found these C# syntaxes are still not well-known and used, so I thought of blogging on them.
1 – Properties Without Members
In the old days, before C# 3.0, we used to write syntax like:
public class Point {
private int _x;
private int _y;
public int X {
get {
return _x;
}
set {
_x = value;
}
}
public int Y {
get {
return _y;
}
set {
_y = value;
}
}
}
But if you are not doing any special processing in your property, you can use a shorter syntax introduced in C# 3.0:
public class Point {
public int X {
get;
set;
}
public int Y {
get;
set;
}
}
2 – The null-coalescing operator ??
While all of use, especially those coming from C/C++ background have used the ternary operator ?:
, such as:
Point point1 = null;
// some code to initialise the point1...
Point point2 = (point1 == null ? new Point() : point1);
However, C# 2.0 introduced this new syntax:
Point point1 = null;
// some code to initialise the point1...
Point point2 = (point1 ?? new Point());
Which does exactly the same as the previous syntax.
3 – Initialising Properties when Creating an Object
Point point = new Point();
point.X = 1;
point.Y = 1;
Or you can use the C# 3.0 syntax:
Point point = new Point { X = 1, Y = 1};
Probably if you are using LINQ then you have used this code several times.