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:
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: 08 April 2024