广嵌科技  广嵌教育  English  
 
首页 > 软件开发 > C/C++ > .Net(C#)开发漫谈:关于变量的命名和属性
.Net(C#)开发漫谈:关于变量的命名和属性
来源:赛迪网 作者:sixth 时间:2008-06-05 发布人:华女

  static readonly与const的变量,作用是一样的,无论访问修饰符是不是public,还是其它(private、protected、internal),变量名称一般为大写,中间以下划线。

  public static readonly int MAX_HEIGHT;

  public const int MIN_HEIGHT = 10;

  有些程序员对大写不敏感,上例中,MAX_HEIGHT用Max_Height代替也未尝不可,甚至MaxHeight也可以。在.Net类库中,int.MaxValue与int.MinValue便是这样定义的。

  const常量更确切的说是编译时常量,因为它在运行时是不存在的,在编译中所有变量引用将被实际值替掉。而static readonly则不然,它在运行时也是存在的。从原理上讲,论效率const优于static readonly。但是在一个比较在的项目中,在dll局部升级时,如果改变了某个const变量的值,而未升级的dll如果也有这个const变量的话,显而易见这时候问题将是产生。如果因此而升级全部dll,反而不值。所以在大型、多变应用中,建议使用static readonly代替const。其微乎其微的效率的减损对比升级布置可能出现的问题还是可以接受的。

  除了以上两种静态只读和常量变量之外,其它变量命名均以下划线开始,访问修改符为private(不建议命名为internal、protected,更不建议命名为public):

private static int _maxHeight;
            private int _minHeight; 如果其命名不前置下划线,易与参数变量混淆。
            对于下面这种定义:
            private int _minHeight = default(int);
            public int MinHeight
            {
            set{
            _minHeight = value;
            }
            get{
            return _minHeight;
            }
            }

  初学者可能觉得有点画蛇添足,不如直接命名为:

  public int MinHeight; 这样岂不简单,干吗还要用getter和setter封装起来,额外的函数调用也使效率有损。

  有时候在开发项目时,开始时我们要画的可能只是一条蛇,但是项目后期需求变了,改画一条龙了。所以在项目初期画蛇的时候添上一对足还是很有远见的。

  getter与setter(属性存取器)可以像方法一样封装逻辑并且像变量一样使用,建议所有非静态只读和常量,定义为private,然后给其添加相应属性存取器,用于赋值与读取。在其它方法体内(包涵类外与类内),不建议直接读写变量。即使它目前可以被直接读写,我们也要通过调用属性存取器也调用。这一点有点麻烦,但很重要,很高老手有时也会犯错误。如下所示:

private int _minHeight = int.MinValue;
            public int MinHeight//或者是protected、internal,甚至是private
            {
            set{
            _minHeight = value;
            //即使这里目前没有其它处理逻辑
            }
            get{
            return _minHeight;
            }
            }
            public void Method1(int minHeight)
            {
            this.MinHeight = minHeight;//在这里不要使用this._minHeight直接读写
            //
            }

  即使变量的访问是受保护的或者或者是私有的,也要使用属性存取器。

  原则是:对于变量的读取,要用属性存取器封装,无论其访问修饰符如何,即使其属性存取器内除了存取目前没有任何其它逻辑。



·上一条:离子迁移谱仪嵌入式系统的设计

评论
发布者 标题 发布日期
暂没有任何评论
以下发言只是广嵌网会员个人意见,非本网立场 查看更多评论

发表评论
·尊重网上道德,遵守中华人民共和国的各项有关法律法规。
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
·本站管理人员有权保留或删除其管辖留言中的任意内容,本站有权在网站内转载或引用您的评论。
·参与本评论即表明您已经阅读并接受上述条款。
标题:
发布者:
内容:
验证码:

相关信息
·.Net(C#)开发漫谈..
·.Net(C#)开发漫谈..
·C#编程实用技巧:轻松实..
·学生管理系统(C原代码)
·嵌入式智能人机界面与PL..
·嵌入式系统编程中的代码优..
·C++对象布局及多态实现..
·C和C++里面的lval..
·C语言平台缩短SoC前期..
·用Visual C++实..
Copyright ©2005-2007 广东省嵌入式软件公共技术中心.All Rights Reserved.版权所有 复制必究
客户服务支持:020-32068395-832 24小时服务热线:13631411558
技术支持与报障:gdesc@midea.com.cn 020-32068395-807/809
粤ICP备05104135号