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;
        }
}

    1 Comment

Leave A Reply

Your email address will not be published. Required fields are marked *

You May Also Like

C# Compiler Error CS0442 – ‘Property’: abstract properties cannot have private accessors Reason for the Error You’ll get this error...
This is a really simple one . Below is a simple example of an enum called “Designation” defined with the...
This blog post explain the usage of the Checked Block in .NET and how you can use them in Visual...