Expand To Show Full Article
C# 6.0 - A field initializer cannot reference the non-static field, method, or property

C# 6.0 – A field initializer cannot reference the non-static field, method, or property

When using the auto property initializer and trying to initialize the auto property with a value from method , you might end up with the below error

C# 6.0 – A field initializer cannot reference the non-static field, method, or property.

image

For example , the below code snippet will give the error.

public class User
{
        public DateTime CreatedDate { get;  } = GetCurrentDate();

        public DateTime GetCurrentDate()
        {
            return DateTime.Now;
        }
}

The reason for the error is that the method GetCurrentDate is NOT marked as static . Setting the method static as shown below will resolve this error.

public class User
{
        public DateTime CreatedDate { get;  } = GetCurrentDate();

        public static DateTime GetCurrentDate()
        {
            return DateTime.Now;
        }
}