Search code examples
c#visual-studio-2008naming-conventionscode-analysisfxcop

C# Code Analysis dislikes protected static s_Foo (CA1709, CA1707)


I usually add an m_ in front of private fields and an s_ before static members.

With a code like

protected static readonly Random s_Random = new Random ();

I get the following warnings by VS2008's Code Analysis:

  • CA1709: Microsoft.Naming : Correct the casing of 's' in member name 'Bar.s_Random' by changing it to 'S'.
  • CA1707: Microsoft.Naming : Remove the underscores from member name 'Bar.s_Random'.

How to resolve this issue? Should I simply remove the s_? Or add a global suppression for this warning?

Edit: My company lacks coding standards, so it's up to me to define them for my code. (Yea I know...)

If you think s_ should be removed in general, I'd be glad if you could provide official sources.


Solution

  • You are not following Microsoft's .NET naming convention that tells you not to prefix stuff with anything. If this is really what you want, add a suppression. Otherwise, follow the guideline by getting rid of s_ and other similar prefixes.

    From Names of Type Members:
    "Names of Fields" Section: "Do not use a prefix for field names. For example, do not use g_ or s_ to distinguish static versus non-static fields."