public virtual void Public_api_bool_parameters_should_not_be_prefixed() { var prefixes = new[] { "is", "can", "has" }; var parameters = ( from type in GetAllTypes(TargetAssembly.GetExportedTypes()) where !type.Namespace.Contains("Internal") from method in type.GetTypeInfo().DeclaredMethods where !method.IsPrivate from parameter in method.GetParameters() where parameter.ParameterType.UnwrapNullableType() == typeof(bool) && prefixes.Any(parameter.Name.StartsWith) select $"{type.FullName}.{method.Name}[{parameter.Name}]") .ToList(); Assert.False( parameters.Count > 0, "\r\n-- Prefixed bool parameteres --\r\n" + string.Join(Environment.NewLine, parameters)); }