分享,讨论Programming的习惯

 1//写这篇文章的目的主要是和大家分享编程的习惯,如果有不对的欢迎大家支出,如果有更好的习惯方法也请提出来。
 2//当然文章还有许多的疏漏支出欢迎大家补全,真正做到完备!
 3
 4
 5//大小写规范:
 6//命名空间,类,结构体,方法名,属性名,static常量,每个单词首字母大写,接口以I开头,并且首字母大写如IDispose;const常量全部字母大写
 7//字段名每个单词首字母小写
 8
 9//起名规范以及理解:
10//命名空间:公司+项目+包
11//类,属性,字段,结构体:名词或者名词性词组(因为描述的是一类实体或者实体属性或者数据),类代表对事物的抽象,他自身有自己的属性和行为,
12//例如人有自己的名字年龄等信息,同时能够说话,走路。结构体主要是对数据的一种组织。
13//方法,接口:动词或者动词词组(描述的是行为,即CAN-DO)
14
15//字段,方法,属性,类等的名字要充分表达出他们自己的功能,能够让代码阅读者不需要看注释就能够知道她的意思,
16//尽量不要缩写,毕竟无论名字多长编译器会帮助你做转化工作,当然也不要太长。呵呵,过尤不及么!
17//例如:数据库连接sqlConnectionString与mysqlConnectionString表达出他们是连接字符串,sqlConnection与mysqlConnection表达出他们是连接对象
18namespace CodeRule
19{
20    public class TestShow
21    {
22        //错误的习惯,不应该把内部字段暴露给其它对象,一是不符合规范,二是暴露实现细节
23        public string name;
24
25        //正确的习惯
26        private object aobject;
27        /// <summary>
28        /// 正确的方法,字段内部使用,其他对象只能通过属性来访问,不知道具体实现细节。当然如果属性是只有子类可见就应该把Public改为protected
29        /// 如果是只读的就应该把Set去掉,我们不应该把暴露扩大化。
30        /// </summary>

31        private string name;            //    private int justToCompare   该处也返回Name,同样的功能,不同的内部实现,相同的访问方法
32        public string Name              //    public string Name
33        {                               //   {   
34            get return name; }        //       get{return justToCompare.ToString();}
35            set { name = value; }       //       set{justToCompare=Convert.ToInt32(value);}
36        }
                               //    }
37
38        //错误的习惯,既然通过属性可以进行Name的读写了,就不应该再提供方法对其的读写操作;二者可以选择其一,不过C#中主要通过属性,Java用方法的居多。
39        public string GetName()
40        {
41            return name;
42        }

43        public void SetName(string name)
44        {
45            return name = name;
46        }

47
48        //有的参数不能为空哪么就应该检查之,我们假设下面的aobject不能为空,哪么下面的习惯就是错误的,
49        //我们应该先检查aobject在它为空的时候做一些处理,然后再执行其它操作,对于属性也是如此
50        public void SetObject(object aobject)
51        {
52            this.aobject=aobject;
53        }

54    }

55}

56//其它:对于自定义集合类要实现IEnumerable接口,自定义事件以Handler结尾,自定义异常以Exception结尾,
57//要实现IDisposable接口,及时释放资源
希望大家可以共同分享编程的经验习惯,提高水平。谢谢!
posted @ 2008-04-24 11:42  镜涛  阅读(2691)  评论(32编辑  收藏  举报
Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名孙镜涛(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言