关于返回值

数组,一定不能返回NULL

Object[] F1()
{
    
//do something 
    return null//灾难
}

上面的代码可能导致灾难性的后果。极少有人这样使用你的函数的。

Object[] objArray = F1();
if (objArray != null)
{
    
for (int i = 0; i < objArray.Length; ++i)
    
{
        
//do something 
    }

}

你应该这样写F1函数:

Object[] F1()
{
    
//do something 
    return new Object[0];
}

 

集合,也不能返回NULL

ICollection F1()
{
    
//do something 
    return null//灾难
}

你应该这样写:

ICollection F1()
{
    
//do something 
    return new ArrayList(0); 
}


字符串,有时候也不能返回NULL

如果你编写一个WebControl,有如下代码:

public String Text
{
    
get
    
{
        
return null//不好,可能导致灾难
    }

}

这样不好,下面的方式可能更好:

public String Text
{
    
get
    
{
        
if (this.text == null)
        
{
            
return String.Empty; 
        }

        
        
return this.text;
    }

}

字符串很多情况下还是可以返回NULL值的,具体情况需要具体分析。


总结
    这都是很简单的规则,必须掌握。以上规则,可以运用在代码评审中。从以前参加代码评审的经验来看,还是有不少初学者犯这类错误的。

posted on 2004-08-01 10:30  温少  阅读(1650)  评论(11编辑  收藏  举报

导航