- A+
所属分类:.NET技术
前言
此处只是整理并记录下.Net开发规范以便加深编码规范。自己编码一直都是随心所欲,特别是在Java和C#之间来回切换,导致命名也乱七八糟完全没有规范可言。一个良好的编程规范可以提升程序员的开发效率、提高程序的易读性、提高代码的可维护性等,本文分两部分:通用规范、.Net开发规范。
通用编程规范
1. 明确性和一致性
一定要要确保代码的明确性、易读性尽量保证清晰简洁,如函数的命名及该有的注释必须要有,让别人一看函数就知道该函数是干什么用的。
2. 库的使用
删除不需要的库引用。
3. 尽量少用全局
尽量少用全局变量,如果要用只读不修改影响不大,但涉及变量的修改就一定要检查变量更改对其它地方的影响,在VS中用“查找所有引用”核查所有用到的代码。
4. 变量申明和初始化
-
- 在变量申明时进行初始化;
- 一定在最小作用域内申明它,一般申明于作用域顶端;
- 变量初始化置于同一行,推荐每行只包含一句申明;
5. 函数申明和调用
-
- 函数名称,返回值,参数原则置于同一行;
- 过多参数一个参数一行(推荐);
- 多个输入参数时建议对输入参数进行排序;
- 当存在多个重构函数时,扩展参数因往后追加;
- 当存在输出参数时候,输出参数放末尾或开头;
1 static void Main(string[] args) 2 { 3 string logMsg = null; 4 string erroMsg = null; 5 string userName = "zhangsan"; 6 string userPwd = "123456"; 7 8 //如果参数较少,可放置一行调用 9 string result = DoSomeFunctionCall(userName, userPwd, false, out logMsg, out erroMsg); 10 11 //如果参数较多情况下,可用如下方式进行调用 12 string result2 = DoSomeFunctionCall( 13 userName, 14 userPwd, 15 false, 16 out logMsg, 17 out erroMsg); 18 19 Console.WriteLine($"result={result}, result2={result2}"); 20 } 21 22 /// <summary> 23 /// 示例函数描述信息 24 /// </summary> 25 /// <param name="userName">用户名</param> 26 /// <param name="userPwd">用户密码</param> 27 /// <param name="isRememberPwd">是否记住密码</param> 28 /// <param name="logMsg">日志信息</param> 29 /// <param name="errorMsg">错误信息</param> 30 private static string DoSomeFunctionCall( 31 string userName, 32 string userPwd, 33 bool isRememberPwd, 34 out string logMsg, 35 out string errorMsg) { 36 37 logMsg = null; 38 errorMsg = null; 39 40 //Do Something 41 42 return "some result"; 43 }
6. 枚举
将代表某些值集合的强类型参数,属性和返回值声明为枚举类型。
7. 空格
空行:适度增加空行来增加代码的可读性;
空格:可使用VS回车自动格式化了;
8. 注释
注释最好简洁明了,一定不要过多的冗余注释,一般注释包括:文件头注释、函数注释、多行注释、单行注释、内联注释、代码快注释。
/* 文件头注释:描述整个类的主要用途,如此类主要用于测试使用。 */ using System; using System.ServiceProcess; using System.Threading; namespace StartServices { class Program { /// <summary> /// 函数注释:控制台函数入口 /// </summary> /// <param name="args"></param> static void Main(string[] args) { string logMsg = null; string erroMsg = null; string userName = "zhangsan"; string userPwd = "123456"; //单行注释:如果参数较少,可放置一行调用 string result = DoSomeFunctionCall(userName, userPwd, false, out logMsg, out erroMsg); /* * 多行注释: * 如果参数较多情况下,可用如下方式进行调用 */ string result2 = DoSomeFunctionCall( userName, //内联注释:用户名 userPwd, //密码 false, //是否记住密码 out logMsg, //日志信息输出 out erroMsg); //错误信息输出 #region 代码块注释:控制台数据输出 Console.WriteLine($"result={result}, result2={result2}"); Console.WriteLine($"result={result}, result2={result2}"); Console.WriteLine($"result={result}, result2={result2}"); Console.WriteLine($"result={result}, result2={result2}"); Console.WriteLine($"result={result}, result2={result2}"); Console.WriteLine($"result={result}, result2={result2}"); #endregion } /// <summary> /// 示例函数描述信息 /// </summary> /// <param name="userName">用户名</param> /// <param name="userPwd">用户密码</param> /// <param name="isRememberPwd">是否记住密码</param> /// <param name="logMsg">日志信息</param> /// <param name="errorMsg">错误信息</param> private static string DoSomeFunctionCall( string userName, string userPwd, bool isRememberPwd, out string logMsg, out string errorMsg) { logMsg = null; errorMsg = null; //Do Something return "some result"; } } }