c#代码编程风格很实用
2011-01-04 16:39
253 查看
1. 代码风格规范
命名规则:
注释的一些模板:
2. 代码设计规范
函数功能:只做一件事,但是要做好。
参数处理:所有传递过来的参数都需要用Assert断言保证其正确性。
如:Assert( p != NULL ); Assert( s.length > 3 );
错误处理:只用作Debug用途的输出信息代码等均需要嵌套在以下预处理语句中。
#if _DAIDAI_DEBUG_
// 这里是debug相关代码
#endif
Tips:
使用Ctrl+K+C注释成片代码,Ctrl+K+U取消注释。
善用代码片段和代码环绕:
可以尝试输入#region后再按两下Tab键。
输入fore后按两下Tab键再按Tab修改。
按#if后再按两下Tab键。
选中一片代码后右键菜单中选择Surround with...再选择 try或#region。
使用F12和Ctrl+'-'在代码中导航。
使用右键Refractor菜单项:比如用Encapsulate field来封装类内私有成员。
使用右键Reslove菜单项加入命名空间。
项 | 规范 | 说明 |
缩进 | 4个空格 | 用Tab的话在不同地方显示长度会变 |
行宽 | 固定 | 限制为在VS2010中不隐藏Solution Explorer时不超出边界 |
括号 | 不要依赖优先级而省略括号 | 在复杂的条件表达式中清楚表示逻辑优先级 |
断行与空白的{}行 | 必须,不能省略 | 单步Debug需要; 使结构和对应关系清晰 |
下划线 | 只有两种情况下使用: 类的私有成员以下划线开头 事件响应函数以下划线分隔对象和动作 | |
大小写 | 类型/类/函数名用Pascal形式 变量用Camel形式 | 类/类型/变量用组合名词, 函数则用动词或动宾组合词 |
注释 | 复杂的注释应该放在函数头; 注释只用来解释程序做什么,为什么这样做,以及要特别注意的地方; 不要注释程序是怎么工作的,这应该在代码中清晰体现 有明显相似作用的代码要用 #region #endregion 括起来并简单注释 | 注释应随程序的修改而不断更新 |
项 | 规范 | 示例 |
类的私有成员 | 以下划线开头,后第一个单词首字母小写其余首字母大写。 | _startPosition |
类的公有成员 | 以属性(Property)体现,私有成员若需外部访问必须通过属性封装。 | public float StartPosition { get; private set; } |
类的属性名 | 所有单词的第一个首字母都要大写。 | StartPosition |
其它除类的私有成员外的变量 | 均为第一个单词首字母小写其余首字母大写。 | myPrivateVariable |
类、枚举、结构体的名字 | 所有单词的第一个首字母都要大写。 | MiniSphere |
命名空间的名字 | 所有单词的第一个首字母都要大写; 不能有下划线,若有说明需划分子命名空间 |
文件注释 | 位于文件开头: /***************************************************************************\ * CodingCrazy Team @ MSRA-USTC Class * * Module Name:An unabbreviated name for the module (not the filename) * Abstract: * Description of what this module does * Notes: * [Optional] algorithm description, special case conditions, * references, etc. * * History: * Created on 2010-11-24 by xxx * # Add … * Modified on 2010-11-25 by xxx * # Add … * # Remove ... * # ... * Modified on 2010-11-26 by xxx * # ... \***************************************************************************/ |
函数头部注释 | 使用XML文档型注释,即/// |
函数内部注释 | 一律使用 // |
函数功能:只做一件事,但是要做好。
参数处理:所有传递过来的参数都需要用Assert断言保证其正确性。
如:Assert( p != NULL ); Assert( s.length > 3 );
错误处理:只用作Debug用途的输出信息代码等均需要嵌套在以下预处理语句中。
#if _DAIDAI_DEBUG_
// 这里是debug相关代码
#endif
Tips:
使用Ctrl+K+C注释成片代码,Ctrl+K+U取消注释。
善用代码片段和代码环绕:
可以尝试输入#region后再按两下Tab键。
输入fore后按两下Tab键再按Tab修改。
按#if后再按两下Tab键。
选中一片代码后右键菜单中选择Surround with...再选择 try或#region。
使用F12和Ctrl+'-'在代码中导航。
使用右键Refractor菜单项:比如用Encapsulate field来封装类内私有成员。
使用右键Reslove菜单项加入命名空间。
相关文章推荐
- 养成良好的代码风格---c#变量命名规则
- 【C#代码】编程实现多少天中有多少周零几天
- c#编程指南(十六) 连续两周出现在CodeProject Newsletter上代码分析
- 代码篇C#网络编程之局域网聊天
- VS编写代码的四种注释(C#),让编程轻而易举
- c# winform 应用编程代码总结 7
- c# socket编程udp客户端实现代码分享
- 编程风格——五种应该避免的代码注释
- 网络编程序列2——C#TCP服务端代码实现二
- c# winform 应用编程代码总结 4
- c# winform 应用编程代码总结 13
- 关于编程风格--这几天看他人代码的一点感受
- 编程风格——整洁代码的4个提示
- [C++] 编程实践之1: Google的C++代码风格3:类
- Linux内核编码风格(编程代码风格推荐)
- Windows编程中上传图片的C#代码
- 翻译《有关编程、重构及其他的终极问题?》——14.一个好的编译器和代码风格还不够
- C#编程规范-程序员们都应该这样写代码
- Object-C 声明属性为什么用下划线,代码规范和编程风格
- c#代码项目风格要求