C - #编程规范V1[1].0 下载本文

C# 编程规范

5.11属性 (property)

以下规则概述属性的命名指南: 1、使用名词或名词短语命名属性。 2、使用 Pascal 大小写。

3、不要使用匈牙利语表示法。

4、考虑用与属性的基础类型相同的名称创建属性。例如,如果声明名为 Color 的属性,则属性的类型同样应该是 Color。请参阅本主题中后面的示例。

以下代码示例阐释正确的属性命名。 public class SampleClass

{

public Color BackColor {

// Code for Get and Set accessors goes here. } }

以下代码示例阐释提供其名称与类型相同的属性。 public enum Color {

// Insert code for Enum here. }

public class Control {

public Color Color {

get {

// Insert code here. } set {

// Insert code here. } } }

C# 编程规范

以下代码示例不正确,原因是 Color 属性是 Integer 类型的。

public enum Color {

// Insert code for Enum here. }

public class Control {

public int Color {

// Insert code here } }

在不正确的示例中,不可能引用 Color 枚举的成员。Color.Xxx 将被解释为访问一个成员,该成员首先获取 Color 属性( C# 中为 int 类型)的值,然后再访问该值的某个成员(该成员必须是 System.Int32 的实例成员)。

5.12事件

以下规则概述事件的命名指南:

1、对事件处理程序名称使用 EventHandler 后缀。

2、指定两个名为 sender 和 e 的参数。sender 参数表示引发事件的对象。sender 参数始终是object 类型的,即使在可以使用更为特定的类型时也如此。与事件相关联的状态封装在名为 e 的事件类的实例中。对 e 参数类型使用适当而特定的事件类。

3、用 EventArgs 后缀命名事件参数类。

4、考虑用动词命名事件。

5、使用动名词(动词的“ing”形式)创建表示事件前的概念的事件名称,用过去式表示事件后。例如,可以取消的 Close 事件应当具有 Closing 事件和 Closed 事件。不要使用BeforeXxx/AfterXxx 命名模式。

6、不要在类型的事件声明上使用前缀或者后缀。例如,使用 Close,而不要使用 OnClose。

7、通常情况下,对于可以在派生类中重写的事件,应在类型上提供一个受保护的方法(称为OnXxx)。此方法只应具有事件参数 e,因为发送方总是类型

C# 编程规范

的实例。

以下示例阐释具有适当名称和参数的事件处理程序。

public delegate void MouseEventHandler(object sender, MouseEventArgs e);

以下示例阐释正确命名的事件参数类。

public class MouseEventArgs : EventArgs {

int x; int y;

public MouseEventArgs(int x, int y) {

this.x = x; this.y = y; }

public int X {

get {

return x; } }

public int Y {

get {

return y; } } }

C# 编程规范

5.13常量 (const)

以下规则概述常量的命名指南:

所有单词大写,多个单词之间用 \隔开。 如

public const string PAGE_TITLE = \

5.14字段

以下规则概述字段的命名指南:

1、private、protected 使用 Camel 大小写。

2、public 使用 Pascal 大小写。

3、拼写出字段名称中使用的所有单词。仅在开发人员一般都能理解时使用缩写。字段名称不要使用大写字母。下面是正确命名的字段的示例。

class SampleClass {

string url;

string destinationUrl; }

4、不要对字段名使用匈牙利语表示法。好的名称描述语义,而非类型。 5、不要对字段名或静态字段名应用前缀。具体说来,不要对字段名称应用前缀来区分静态和非静态字段。例如,应用 g_ 或 s_ 前缀是不正确的。

6、对预定义对象实例使用公共静态只读字段。如果存在对象的预定义实例,则将它们声明为对象本身的公共静态只读字段。使用 Pascal 大小写,原因是字段是公共的。下面的代码示例阐释公共静态只读字段的正确使用。 public struct Color {

public static readonly Color Red = new Color(0x0000FF);

public Color(int rgb) {

// Insert code here. }

public Color(byte r, byte g, byte b) {

// Insert code here.