c#代码Word下载.docx

上传人:b****6 文档编号:8389544 上传时间:2023-05-11 格式:DOCX 页数:29 大小:27.61KB
下载 相关 举报
c#代码Word下载.docx_第1页
第1页 / 共29页
c#代码Word下载.docx_第2页
第2页 / 共29页
c#代码Word下载.docx_第3页
第3页 / 共29页
c#代码Word下载.docx_第4页
第4页 / 共29页
c#代码Word下载.docx_第5页
第5页 / 共29页
c#代码Word下载.docx_第6页
第6页 / 共29页
c#代码Word下载.docx_第7页
第7页 / 共29页
c#代码Word下载.docx_第8页
第8页 / 共29页
c#代码Word下载.docx_第9页
第9页 / 共29页
c#代码Word下载.docx_第10页
第10页 / 共29页
c#代码Word下载.docx_第11页
第11页 / 共29页
c#代码Word下载.docx_第12页
第12页 / 共29页
c#代码Word下载.docx_第13页
第13页 / 共29页
c#代码Word下载.docx_第14页
第14页 / 共29页
c#代码Word下载.docx_第15页
第15页 / 共29页
c#代码Word下载.docx_第16页
第16页 / 共29页
c#代码Word下载.docx_第17页
第17页 / 共29页
c#代码Word下载.docx_第18页
第18页 / 共29页
c#代码Word下载.docx_第19页
第19页 / 共29页
c#代码Word下载.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c#代码Word下载.docx

《c#代码Word下载.docx》由会员分享,可在线阅读,更多相关《c#代码Word下载.docx(29页珍藏版)》请在冰点文库上搜索。

c#代码Word下载.docx

∙2、C#代码规范.NET程序员需要提升的修养

∙ 

2010-08-1009:

51 

javincoder 

博客园 

我要评论(0)

没有规矩不成方圆,.NET程序员在日常的工作中坚持良好的编码习惯,对于今后的代码维护以及交接工作都大有裨益。

1.引言

本文是一套面向C#programmer和C#developer进行开发所应遵循的开发规范。

按照此规范来开发C#程序可带来以下益处:

·

 

代码的编写保持一致性,

提高代码的可读性和可维护性,

在团队开发一个项目的情况下,程序员之间可代码共享

易于代码的回顾,

本规范是初版,只适用于一般情况的通用规范,并不能覆盖所有的情况。

2.文件组织

2.1C#源文件

类名或文件名要简短,不要超过2000LOC,将代码分割开,使结构清晰。

将每个类放在一个单独的文件中,使用类名来命名文件名(当然扩展名是.cs)。

这种约定会使大家工作更简单。

2.2目录设计

为每一个命名空间创建一个目录。

(用MyProject/TestSuite/TestTier作为MyProject.TestSuite.TestTier的路径,而不用带点的命名空间名做路径)这样可以更容易地将命名空间映射到目录层次划分。

3.缩进

3.1换行

当一个表达式超过一行时,根据这些通用原则进行处理:

在逗号后换行。

在操作符后换行。

在高层换行而不要在低层处换行。

折行后对齐上一行语句同一层的表达式起始位置。

方法调用换行示例:

1.longMethodCall(expr1, 

expr2, 

2.

3. 

expr3, 

expr4, 

expr5);

算术表达式换行示例:

推荐:

4.var 

(c 

f) 

5.

6. 

z;

不好的格式——应避免:

7.var 

8.

9. 

推荐使用第一种方法,因为是在括号表达式之外折行(高层次折行原则)。

注意要用制表符到缩进的位置,然后用用空格到折行的位置。

在我们的例子中是:

10.>

var 

11.

12.>

......4 

'

>

表示是制表符,'

.'

表示是空格符。

(制表符后是空白是用制表符缩进)。

一个好的编码习惯就是在所用的编辑器中显示制表符和空格符。

3.2空白

利用空格进行缩进从未有过统一的标准。

一些人喜欢用两个空格,一些人喜欢用四个空格而还有一些人喜欢用八个空格,甚至有的人喜欢用更多的空格。

好的做法是用制表符。

制表符有一些优点:

每个人都可以设置他们自己喜欢的缩进层级。

它仅仅是1个字符而不是2,4,8等等,因此它将减少输入(甚至因为自动缩进,有时你不得不手工设置缩进或取消设置,等等诸如此类的操作)。

如果你想增加或减少缩进,可以标记一块,使用Tab增加缩进层级而用Shift-Tab减少缩进层级。

这几乎对于任何文本编辑器都是适用的。

这里,我们定义制表符为标准缩进符。

不要用空格缩进—用制表符!

4.注释

4.1块注释

块注释通常应该是被避免的。

推荐使用///注释作为C#的标准声明。

如果希望用块注释时你应该用以下风格:

13./* 

Line 

14.

15.* 

16.

17.* 

18.

19.*/ 

因为样可以为读者将注释块与代码块区分开。

虽然并不提倡使用C风格的单行注释,但你仍然可以使用。

一旦用这种方式,那么在注释行后应有断行,因为很难看清在同一行中前面有注释的代码:

20./* 

blah 

*/ 

块注释在极少情况下是有用的。

通常块注释用于注释掉大的代码段。

4.2单行注释

你应该用//注释风格“注释掉”代码(快捷键,Alt+/)。

它也可以被用于代码的注释部分。

单行注释被用于代码说明时必须缩进到相应的编进层级。

注释掉的代码应该放在第一行被注释掉以使注释掉的代码更容易看清。

一条经验,注释的长度不应该超过被解释代码的长度太长,因为这表示代码过于复杂,有潜在的bug。

4.3文件注释

在.net框架,Microsoft已经介绍了一个基于XML注释的文件。

这些文件是包括XML标签的正规的单行的C#注释。

他们遵循单行注释的模式:

21./// 

<

summary>

 

22.

23./// 

This 

class... 

24.

25./// 

/summary>

多行XML注释遵循这种模式:

26./// 

exception 

cref=”BogusException”>

27.

28./// 

gets 

thrown 

as 

soon 

29.

30./// 

Bogus 

flag 

set. 

31.

32./// 

/exception>

为了被认作是XML注释行,所有的行都必须用三个反斜线开始。

标签有以下两类:

文件说明项

格式/参考

第一类包括像<

<

param>

or<

exception>

的标签。

描述一个程序的API元素的这些文档说明项必须写清楚以方便其他程序员。

如上面的多行注释示例所示,这些标签通常带有名称或cref属性。

编译器会检查这些属性,所以它们必须是有效、正确的。

第二类用诸如<

code>

list>

para>

标签,用于控制备注说明的布局。

文件可以用‘文件’菜单中的‘创建’菜单产生。

文件以HTML格式产生。

5.声明

5.1每行的声明数

推荐每行只有一个声明,因为它可以方便注释。

33.int 

level;

// 

indentation 

level 

34.

35.int 

size;

size 

of 

table 

当声明变量时,不要把多个变量或不同类型的变量放在同一行,例如:

36.int 

a, 

b;

//What 

is 

a'

?

What 

does 

b'

stand 

for?

上面的例子也显示了变量名不明显的缺陷。

当命名变量时要清晰。

5.2初始化

局部变量一旦被声明就要初始化。

例如:

37.string 

name 

myObject.Name;

38.int 

val 

time.Hours;

注意:

如果你初始化一个dialog,设计使用using语句:

39.using 

(OpenFileDialog 

openFileDialog 

new 

OpenFileDialog()) 

40.

41.... 

42.

43.} 

5.3类和接口声明

当编写C#类和接口时,应遵循以下格式化规则:

在方法名和圆括号“(”开始它的参数列表之间不要使用空格。

在声明语句的下一行以大括号"

{"

标志开始。

以"

}"

结束,通过它自身的缩进与相应的开始标志匹配。

44.Class 

MySample 

:

MyClass, 

IMyInterface 

45.

46.{ 

47.

48. 

int 

myInt;

49.

50. 

public 

MySample(int 

myInt) 

51.

52. 

53.

54. 

this.myInt 

myInt 

;

55.

56. 

57.

58. 

void 

Inc() 

59.

60. 

61.

62. 

++myInt;

63.

64. 

65.

66. 

EmptyMethod() 

67.

68. 

69.

70. 

71.

72.} 

对于一个大括号的位置参考10.1部分。

6.语句

6.1简单语句

每行都应该只包含一条语句。

6.2返回语句

一个返回语句不要用最外围圆括号。

不用:

return(n*(n+1)/2);

用:

returnn*(n+1)/2;

6.3If,if-else,ifelse-ifelse语句

if,if-elseandifelse-ifelse语句看起来应该像这样:

73.if 

(condition) 

74.

75.DoSomething();

76.

77.... 

78.

79.} 

80.

81.if 

82.

83.DoSomething();

84.

85.... 

86.

87.} 

else 

88.

89.DoSomethingOther();

90.

91.... 

92.

93.} 

94.

95.if 

96.

97.DoSomething();

98.

99.... 

100.

101.} 

if 

102.

103.DoSomethingOther();

104.

105.... 

106.

107.} 

108.

109.DoSomethingOtherAgain();

110.

111.... 

112.

113.} 

6.4for/foreach语句

一个for语句应该如下形式:

114.for 

(int 

0;

5;

++i) 

115.

116.... 

117.

118.} 

或者放置一行(考虑用一个while语句代替)

119.for 

(initialization;

condition;

update) 

foreach语句应该像下面所示:

120.foreach 

in 

IntList) 

121.

122.... 

123.

124.} 

在一个循环中,即使只有一个语句通常也用括弧括起来。

6.5While/do-while语句

一个while语句应该写成如下形式:

125.while 

126.

127.... 

128.

129.} 

一个空while语句应该是以下格式:

while(condition);

一个do-while语句应该是如下格式:

130.do 

131.

132.{ 

133.

134.... 

135.

136.} 

while 

(condition);

6.6Switch语句

一个switch语句应该如下格式:

137.switch 

138.

139.case 

A:

140.

141.... 

142.

143.break;

144.

145.case 

B:

146.

147.... 

148.

149.break;

150.

151.default:

152.

153.... 

154.

155.break;

156.

157.} 

6.7Try-catch语句

一个try-catchstatement语句应该遵循以下格式:

158.try 

159.

160.... 

161.

162.} 

catch 

(Exception) 

{} 

163.

164.or 

165.

166.try 

167.

168.... 

169.

170.} 

(Exception 

e) 

171.

172.... 

173.

174.} 

175.

176.or 

177.

178.try 

179.

180.... 

181.

182.} 

183.

184.... 

185.

186.} 

finally 

187.

188.... 

189.

190.} 

7.空白

7.1空行

空行提高可读性。

它们分开那些逻辑上自身相关联的代码块。

两行空格行应该用于以下之间:

一个源文件的逻辑段。

类和接口定义(每个文件只定义一个类或接口以避免这种情况)。

一个空格行应该总是被用于以下之间:

方法

属性

一个方法中的局部变量和它的第一条语句

一个方法中的逻辑段为了提高可读性。

注意空白行必须被缩进因为它们包括一条语句这使得插入这些行更容易。

7.2内部空格

在一个逗号或一个分号之后应该由一个空格,例如:

191.TestMethod(a, 

b, 

c);

不要用:

TestMethod(a,b,c) 

192.TestMethod( 

);

单个空格包围操作符(除了像加的一元操作符和逻辑非),例:

193.a 

don'

use 

a=b;

194.

195.for 

10;

for 

i=0;

i<

++i) 

196.

197.// 

or 

198.

199.// 

for(int 

7.3表格格式化

行的一个逻辑块应该作为一个表格被格式化:

200.string 

"

Mr. 

Ed"

201.

202.int 

myValue 

203.

204.Test 

aTest 

Test.TestYou;

对于表格的格式化用空格而不用制表符因为在某些制表符缩进设置会使表格格式化看起来是很奇怪。

8.命名习惯

8.1大写格式

8.1.1PascalCasing

习惯大写每个单词的第一个字母(就像在TestCounter)。

8.1.2CamelCasing

习惯除了第一个单词外大写每个单词的第一个字母例如testCounter。

8.1.3全大写情况

对于只有一两个字符缩写组成的标识符才用全大写的情况。

有三个或更多个字符组成的标识符应该用Pascal情况代替。

205.public 

class 

Math 

206.

207.{ 

208.

209.public 

const 

PI 

... 

210.

211.public 

212.

213.public 

feigenBaumNumber 

214.

215.} 

8.2.命名指导方针

通常根据指导方针在名字和命名内用低线字符对Hungarian符号来说被认为是坏习惯。

Hungarian符号是一组应用于命名来映射变量类型的前缀和后缀。

这种命名风格在早期的Windows程序中被广泛应用,但现在被取消了至少不提倡了。

如果你遵循这个指南用Hungarian符号是不允许的。

但要记住一个好的变量名描述了语义而不失类型。

对于这个规则有个例外就是GUI编码。

包括像按钮(buttton)的GUI元素,所有领域和变量名都应该带有它们类型名的后缀不是缩写。

216.System.Windows.Forms.Button 

cancelButton;

217.

218.System.Windows.Forms.TextBox 

nameTextBox;

8.2.1类命名指导方针

类命名必须是名词或名词短语。

UsePascal情况参考8.1.1

不要用任何类前缀

8.2.2接口命名指导方针Guidelines

用可以描述行为的名词或名词短语或形容词命名接口。

(例如IComponent或IEnumberable)

用Pascal情况(参考8.1.1)

用I作为名字的前缀,它应该紧跟一个大写字母(接口名的第一个字母)

8.2.3枚举命名指导方针

用Pascal情况命名枚举值名字和类型名字

枚举类型和枚举值不要前缀

对于枚举用单一名字

对于位领域用复数名字

8.2.4只读和常量命名

用名词,名词短语或名词的缩写命名静态领域

使用Pascal情况(参考8.1.1)

8.2.5参数/非常量领域命名

一定要用描述性名字,应该能够足够表现变量的意义和它的类型。

但一个好的名字应该基于参数的意义。

使用Camel情况(参考8.1.2)

8.2.6变量命名

计数变量当用在琐碎的计数循环式更适宜叫i,j,k,l,m,n。

(参考10.2例如对全局计数的更智能命名等等)—

8.2.7方法命名

用动词或动词短语命名方法。

使用Pascal(参考8.1.2)

8.2.8属性命名

用名词或名词短语命名属性

使用Pascal情况(参考8.1.2)

考虑用与其类型相

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2