Skip to main content

Field can be made read-only

In This Article

CodeRush Classic shows the Field can be made read-only code issue if a field is initialized inside its declaration or (and) a value is assigned to this field only within constructors.

#Fix

Add the readonly keyword to the field declaration statement.

#Purpose

CodeRush Classic suggests you make fields read-only, because the use of read-only fields makes your code safer.

#Example

public class MyClass
{
    //constructors
    public MyClass(){ }
    public MyClass(string text)
    {
        _Text = text;
    }
    public MyClass(object obj)
    {
        _Text = obj.ToString();
    }
    //fields
    private string _Text = "MyText";
    //properties
    public string Text
    {
        get { return _Text; }
    }
}

Fix:

public class MyClass
{
    //constructors
    public MyClass(){ }
    public MyClass(string text)
    {
        _Text = text;
    }
    public MyClass(object obj)
    {
        _Text = obj.ToString();
    }
    //fields
    private readonly string _Text = "MyText";
    //properties
    public string Text
    {
        get { return _Text; }
    }
}