How to assign an expression to a class property in C#6
February 12, 2016 Leave a comment
Consider the following Person class written using the new immutable property syntax of C# 6:
public class Person { public int Age { get; } public string FirstName { get;} public string LastName { get; } public Person(string firstName, string lastName, int age) { FirstName = firstName; LastName = lastName; Age = age; } }
Then let’s say you’d like to add a new property that returns the full name of the person. In C# 5 you’d write something like this:
public string FullName { get { return string.Format("{0} {1}", FirstName, LastName); } }
Note that the “get” body is very simple, it’s only one line.
In C# 6 we can assign expressions to properties using the familiar “=>” operator as follows:
public string FullName => string.Format("{0} {1}", FirstName, LastName);
How neat is that? You can call this property on the Person object as you would in any other case:
Person p = new Person("John", "Smith", 28); Console.WriteLine(p.FullName);
…which prints John Smith as expected.
Let’s add one more example. We’ll add an Old property with a simple logic. Anyone over and above the age of 35 will be old. That includes me as well, don’t worry:
public bool Old => Age > 35;
Calling p.Old on the above example will return false.
View all various C# language feature related posts here.