ReSharper 2017.3 Help

Code Inspection: Member initialized value ignored

If a constructor initializes a field from a parameter, it is not necessary to initialize the field at declaration. In the example below, ReSharper removes the initialization of _contents from its declaration because _contents is assigned a value in the constructor.

Initializing fields within a constructor is preferable for a number of reasons. For example, if there are more than one constructor, it enables you to initialize a field with different values. Generally, in case of complex logic the initialization inside a constructor is recommended.

ReSharper suggests removal of the unnecessary field initializer:

Suboptimal codeAfter the quick-fix
public class MyClass { private readonly List<object> _contents = new List<object>(); public MyClass(List<object> list) { _contents = list; Console.WriteLine(_contents.ToString()); } }
public class MyClass { private readonly List<object> _contents; public MyClass(List<object> list) { _contents = list; Console.WriteLine(_contents.ToString()); } }
Last modified: 7 December 2017

See Also