您的位置:知识库 »

.NET(C#)开发小技巧

作者: sban  发布时间: 2008-09-04 16:10  阅读: 3521 次  推荐: 0   原文链接   [收藏]  
[1] .NET(C#)开发小技巧
[2] .NET(C#)开发小技巧

    以下是我在.Net开发中总结的一些小的开发技巧,园子里的朋友大多数都是.Net程序员,相信对此都很熟悉。 如果您觉得太浅显了,请不要嘲笑;如果觉得哪些地方说的欠妥,敬请斧正;如果您觉得还有什么地方没有说到位,请补充,谢谢。
    这些技巧再浅显平常不过,初学者很容易忽略。相信越是越老道的程序员,越重视这些稀疏平常的技巧。

    一,关于变量的命名和属性
      
    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直接读写
        //
    }

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

[第1页][第2页]
0
0
 

热门文章

    最新文章

      最新新闻

        热门新闻