C# 6.0 Features Series
- How to try C# 6.0 and Rosyln?
- Getter-only (Read Only) Auto Properties in C# 6.0
- Lambda and Getter Only Auto-Properties in C# 6.0
- Initializers for Read-Only Auto Properties in C# 6.0
- Initializers via Expression Auto Properties in C# 6.0
- C# 6.0 – A field initializer cannot reference the non-static field, method, or property
- Lambda Expression for Function Members in C# 6.0
- Dictionary Initializers (Index Initializers) in C# 6.0
- Expression Bodies on Methods returning void in C# 6.0
- using keyword for static class in C# 6.0
- Unused namespaces in Different Color in Visual Studio 2015
- Null-Conditional Operator in C# 6.0
- Null-Conditional Operator and Delegates
- nameof Operator in C# 6.0
- Contextual Keywords in C#
- String Interpolation in C# 6.0
- Exception Filters in C# 6.0
- Await in Catch and finally block in C# 6.0
In one of the previous blog post , i shared an interesting feature in C# 6.0 that demonstrates How to Initialize a Read-Only Auto Properties in C# 6.0 ? .
In this blog post , I will share an extension of the same feature where the Initializers for the auto properties can be any expression including the return value of a method.
Initializers via Expression Auto Properties in C# 6.0
Below is a code snippet demonstrating the usage of the return value of the method to initialize the auto properties in C# 6.0
public class Employee { public string FirstName { get; set; } public string LastName { get; set; } public DateTime ModifiedDate { get; } = GetCurrentDateTime(); public static DateTime GetCurrentDateTime() { return DateTime.Now; } }
Note that the Method should be static or else you will receive the below error .
Error CS0236 A field initializer cannot reference the non-static field, method, or property ‘Employee.GetCurrentDateTime()’