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.