Utility classes, which are collections of `+static+` members, are not meant to be instantiated. C# adds an implicit public constructor to every class which does not explicitly define at least one constructor. Hence, at least one `+protected+` constructor should be defined if you wish to subclass this utility class. Or the `+static+` keyword should be added to the class declaration to prevent subclassing. == Noncompliant Code Example ---- public class StringUtils // Noncompliant { public static string Concatenate(string s1, string s2) { return s1 + s2; } } ---- == Compliant Solution ---- public static class StringUtils { public static string Concatenate(string s1, string s2) { return s1 + s2; } } ---- or ---- public class StringUtils { protected StringUtils() { } public static string Concatenate(string s1, string s2) { return s1 + s2; } } ----