ReSharper 2024.1 Help

Code inspection: Static field or auto-property in generic type

Category

Potential Code Quality Issues

ID

StaticMemberInGenericType

EditorConfig

resharper_static_member_in_generic_type_highlighting

Default severity

Warning

Language

C#, VB.NET

Requires SWA

No

In the vast majority of cases, having a static field or auto-property in a generic type is a sign of an error. The reason for this is that a static member in a generic type will not be shared among instances of different close constructed types. This means that for a generic class MyGeneric<T> which has public static string MyProp { get; set; }, the values of MyGeneric<int>.MyProp and MyGeneric<string>.MyProp have completely different, independent values.

If you need to have a static field shared between instances with different generic arguments, define a non-generic base class to store your static members, then set your generic type to inherit from this type.

Last modified: 11 February 2024