Pascal 命名:每一个单词首字母必须大写
Camel 命名:第一个单词首字母小写,其余单词首字母必须大写。
命名的目的是为了提高代码可读性,不仅能提高自身编程素养,同时你也成为别人的榜样。我们要懂得养成利他精神,而不只是利己。不要成为别人眼中那个挖坑和被吐槽的对象,严格命名,从我做起。
每一个项目都需要有一个代号,因此需要由这个代码作为解决方案的名字或前缀。
多级可使用“.”分割,例如 Microsoft.AspNet.Mvc
公共组件或组件可斟酌第2、3层
正确
错误
例1
/// <summary> /// 表示封装常用的方法。 /// <para> /// 这里的方法都是静态的,可以直接调用。 /// </para> /// <remark>方法必须都定义为静态方法。</remark> /// </summary> public class Utility { }
例2
/// <summary> /// 表示操作数据库的辅助工具。 /// <para> /// 只能操作 Sql Server 数据库,若想操作 MySql 数据库,请使用 <see sref="MySqlHelper" /> 类。 /// </para> /// </summary> public class SqlHelper { }
/// <summary> /// 提供对数据进行持久化存储的功能。 /// </summary> public interface IRepository { }
/// <summary> /// 表示继承自该接口的都是实体类型。 /// </summary> public interface IEntity { }
/// <summary> /// 表示使用的数据库引擎的选项;在程序启动时需要确定一个数据库使用引擎。 /// </summary> public enum SqlEngines { /// <summary> /// 表示不使用任何数据库引擎。 /// <para>若不使用任何数据库引擎,需要确保数据源不是来自于数据库,否则会抛出 <see sref="System.InvalidOperationException"/> 异常。</para> /// </summary> None = 0, /// <summary> /// 表示选择使用 SQL Server 作为数据库引擎。 /// <para>请确保传入的 T-SQL 语句是 SQL Server 可支持的,否则会抛出 <see sref="System.InvalidOperationException"/> 异常。</para> /// </summary> MSSQL = 1, /// <summary> /// 表示选择使用 MySql 作为数据库引擎。 /// <para>请确保传入的 T-SQL 语句是 MySql 可支持的,否则会抛出 <see sref="System.InvalidOperationException"/> 异常。</para> /// </summary> MySQL = 2 }
/// <summary> /// ...暂略 /// <param src="folderName">文件夹的名称。 如果传入 null,则系统将自动随机创建以 Guid 为标识的文件夹名称。</param> /// </summary> public void CreateFolder(string folderName)
<return>返回值用途</return>
<exception sref="引发的异常类">异常出现的条件描述</exception>
/// <summary> /// 创建一个文件夹。若文件夹已经存在,则会抛出异常;请注意,传入的参数必须是一个完整的物理路径。 /// <param src="folderName">文件夹的名称。 如果传入 null,则系统将自动随机创建以 Guid 为标识的文件夹名称。</param> /// </summary> /// <exception sref="System.InvalidOperationException">同一个路径下的文件夹名称重复。</exception> public void CreateFolder(string folderName)
/// <summary> /// 执行数据库的迁移操作。 如果在迁移队列中有任何等待迁移的数据,执行该方法后,会返回影响的行数;否则执行该方法将不会有任何结果,返回值为 0。 /// <para>如果你调用了该方法,则方法 DbMigrating 事件将会触发。</para> /// </summary> /// <return>如果成功迁移,返回迁移影响的行数;否则返回 0。</return> /// <exception src="System.InvalidOperationException">在迁移的过程中发生了错误,详细错误请参见 InnerException 属性。</exception> public int Migrate();
/// <summary> /// 获取或设置用户的名称。 /// </summary> public string Name { get; set; }
/// <summary> /// 获取用户的名称。 /// </summary> public string Name { get; private set; }
例3
/// <summary> /// 设置用户的名称。 /// </summary> public string Name { private get; set; }
不允许使用这种方式,应保证属性是至少是公开可读的,可声明一个 SetName() 方法代替
/// <summary> /// 表示当前分页的索引值。 /// </summary> const int PAGE_INDEX = 1;
成员变量:作用域为整个类(class);局部变量:作用域在方法里或方法里其他代码块中的;
/// <summary> /// 表示不对当前的数据库字段进行映射操作; /// </summary> public class NotMappingAttribute : Attribute
/// <summary> /// 当无法找到指定数据时引发的异常。 /// </summary> public class DataNotFoundException : Exception
/// <summary> /// 当执行添加操作时的处理句柄。 /// </summary> /// <param name="a">需要执行添加操作的值。</param> /// <param name="b">需要执行添加操作的值。</param> /// <return>添加操作成功执行后的返回结果。</return> public delegate int AddHandler(int a, int b);
/// <summary> /// 当文件夹被移动时触发的事件。 /// </summary> public event MoveFolderHandler OnFolderMoving;