== Why is this an issue? When a ``++static++`` constructor serves no other purpose that initializing ``++static++`` fields, it comes with an unnecessary performance cost because the compiler generates a check before each ``++static++`` method or instance constructor invocation. Instead, inline initialization is highly recommended. === Noncompliant code example [source,csharp] ---- namespace myLib { public class Foo { static int i; static string s; static Foo() // Noncompliant { i = 3; ResourceManager sm = new ResourceManager("strings", Assembly.GetExecutingAssembly()); s = sm.GetString("mystring"); } } } ---- === Compliant solution [source,csharp] ---- namespace myLib { public class Foo { static int i =3; static string s = InitString(); static string InitString() { ResourceManager sm = new ResourceManager("strings", Assembly.GetExecutingAssembly()); return sm.GetString("mystring"); } } } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Initialize all "static" data inline and remove the "static" constructor === Highlighting Primary: Static constructor signature Secondary: Uninitialized static fields endif::env-github,rspecator-view[]