Add readonly modifier (IDE0044)

Property Value
Rule ID IDE0044
Title Add readonly modifier
Category Style
Subcategory Language rules (field preferences)
Applicable languages C# and Visual Basic
Introduced version Visual Studio 2017
Options dotnet_style_readonly_field


This style rule concerns specifying the readonly (C#) or ReadOnly (Visual Basic) modifier for private fields that are initialized (either inline or inside of a constructor) but never reassigned.


Options specify the behavior that you want the rule to enforce. For information about configuring options, see Option format.


Property Value Description
Option name dotnet_style_readonly_field
Option values true Prefer that private fields be marked readonly if they're only ever assigned inline or in a constructor
false Specify no preference over whether private fields are marked readonly
Default option value true
// dotnet_style_readonly_field = true
class MyClass
    private readonly int _daysInYear = 365;
' dotnet_style_readonly_field = true
Public Class MyClass
    Private ReadOnly daysInYear As Int = 365
End Class

Suppress a warning

If you want to suppress only a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.

#pragma warning disable IDE0044
// The code that's violating the rule is on this line.
#pragma warning restore IDE0044

To disable the rule for a file, folder, or project, set its severity to none in the configuration file.

dotnet_diagnostic.IDE0044.severity = none

To disable all of the code-style rules, set the severity for the category Style to none in the configuration file.

dotnet_analyzer_diagnostic.category-Style.severity = none

For more information, see How to suppress code analysis warnings.

See also