c# Naming Conventions recommendation – level 100

Recently my team began the process of revising out coding standards document.  We are revisiting this issue because the standards were developed when we used VB 6 and ASP 3.0.  I have offered my opinions to the team, and I’ll post them here.  Comments are welcome.  


To throw in my opinion, I would agree with the below proposed changes with the following exceptions:

All pulic, protected, or internal interfaces should use PascalCasing.

All private members should use camelCasing.

All private class members should be prefixed with “_”

“p_”, “m_”, “g_”, should not be used, and Hungarian notation should not be used.

For instance:

namespace GpdsIT.SomeRandomApp {
  public class IDBadge {
    private Guid _uniqueID;
    private string _badgeName = string.Empty;
    public Guid UniqueID {
      get { return _uniqueID; }
      set { _uniqueID = value; }
    public string Name {
      get { return _badgeName; }
      set { _badgeName = value; }
    public IDBadge(string badgeName) {
      _uniqueID = Guid.NewGuid();
      _badgeName = badgeName;

I’ll refer you to the MSDN Design Guidelines for Class Library Developers at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconNETFrameworkDesignGuidelines.asp.

The Naming Guidelines link has naming convention recommendations that support the above rules, and the other links have very valuable information about .Net best practices.