第8章 C# 编程风格约定

8.1. 通用风格约定

8.1.1. 花括号的使用

ü 左花括号“{”放在关键字或方法的下一行并与之对其。

例如:

if (n > 0)

{

...

}

private void Work(int n)

{

...

}

 

ü 左花括号“{”要与相应的右花括号“}”对齐。

 

ü 在通常情况下,左花括号“{”单独成行,不与任何语句并列成行。

 

ü ifwhiledo语句后一定要使用{},即时{}号中为空或只有一条语句。

例如:

if (n > 10)

{

Work(n);

}

 

8.1.2. 空格的使用

ü 关键字和左括号“(”应该用空格隔开。

例如:

for (int i = 0; i < 10; i++)

{

...

}

 

ü 在方法名和左括号“(”之间不要用空格,这样有助于辨认代码中的方法调用和关键字。

 

ü 多个参数用逗号“,”隔开,每个逗号后都应加一个空格。

 

ü 除了“.”之外,所有二元操作符都应该与它们的操作数隔开。一元操作符、++ 及 -- 与操作数间不需要空格。

例如:

a += c + d;

a = (a + b) / (c * d);

while (d++ == s++)

{

n++;

}

Console.WriteLine("num is" + n);

 

ü 语句中的表达式之间要用空格隔开。

例如:

for (expr1expr2expr3)

{

...

}

 

8.1.3. 缩进的使用

ü 要用4个连续的空格符来进行缩进。

 

û 不要用制表符(Tab)来进行缩进。

 

ü 要对代码块中的内容进行缩进。

例如:

if (someExpression)

{

DoSomething();

}

 

ü 要对Case代码块进行缩进,尽管没有使用花括号。

例如:

switch (someExpression)

{

case 0:

DoSomething();

break;

}

8.2. 命名空间引用约定

ü 引用解决方案的其他工程的类,在头文件中引用全部路径,如:

using Codyy.CocoGlobalSession.GlobalSessionClient.RegionSession.GroupOp;

RegionSessionGroupOpServiceProxyMethod regionSessionGroupOpServiceProxyMethod

new RegionSessionGroupOpServiceProxyMethod();

如果一个解决方案中的两个工程中定义了相同的类,实例化该类时要指定全路径。

 

ü 引用本工程的类,写出全部路径, 如:

GlobalSessionUtility.SessionUtility.GroupSession groupSession = newGlobalSessionUtility.SessionUtility.GroupSession();

8.3. 命名约定

ü 要在命名命名空间、类型及成员时采用PascalCasing大小写风格。

 

ü 私有字段用PascalCasing命名,并加上前缀“m_”。

例如:

private int m_ValueOne;

 

ü 私有静态变量用PascalCasing命名,并加上前缀“s_”。

static s_ValueTwo;

private static s_ValueThree;

 

ü 全局变量用PascalCasing命名。

internal static string GlobalSessionId;

 

ü 要用camelCasing命名局部变量。

 

ü 要用camelCasing命名方法的形式参数。

 

û 不要用匈牙利命名法。

 

û 避免给局部变量加前缀。

 

ü 要使用c#语言中对应的别名,不要使用.net框架中的类型名。

例如:要使用int 而不是Int32,要使用object而不是Object

8.4. 注释

û 不要用注释来描述一些对任何人都显而易见的事。

 

ü 代码块的注释,避免使用块注释语法(/*…*/)。即使注释会有多行,也最好是使用单行注释语法(//…)。

 

ü 类、方法、构造函数、属性等非代码块注释采用以下形式:

/// <summary>

/// 主函数入口

/// </summary>

/// <param name="args">参数说明</param>

static void Main(string[] args)

{

}

 

û 不要把注释放在行尾,除非特别短。

//注释语句

TestVirtual t2 = new TestOverride(); //除非特别短,否则不要在此注释

 

8.5. 文件的组织

û 不要在一个源文件中包含一个以上的公用类型,除非有嵌套类,或各类型之间的不同之处仅在于泛型参数的数量。一个文件中有多个内部类型是允许的。

 

ü 要用相同的名字来命名源文件及其包含的公用类型。

例如:String类应该在String.cs文件中。

 

ü 考虑根据下面给出的顺序和组别来对成员进行分组。

Ø 所有字段。

Ø 所有构造函数。

Ø 公有属性及其受保护的属性。

Ø 方法(所有显式实现的接口方法、内部方法、私有方法)。

Ø 事件。

Ø 所有嵌套类型。

例如:

public class TestClass

{

#region 字段

#endregion

 

#region 构造函数

#endregion

 

#region 属性

#endregion

 

#region 方法

#region 接口方法

#endregion

#region 内部方法

#endregion

#region 私有方法

#endregion

#endregion

 

#region 事件

#endregion

 

#region 嵌套类型

#endregion

}

 

ü 要把不能公开访问的成员和显式实现的接口成员分别放在自己的#region块中。

#region 不能公开访问的成员

#endregion

#region 显式实现的接口成员

#endregion

 

ü 考虑在每个组别内根据字母顺序来组织成员。

 

ü 考虑根据由简单到复杂的顺序来组织重载成员。

 

ü 要把using指令放在命名空间生命之外。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值