zoukankan      html  css  js  c++  java
  • 关于返回值

    数组,一定不能返回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值的,具体情况需要具体分析。


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

  • 相关阅读:
    面向对象(metaclass继承高级用法)
    建表和删表(sqlalchemy框架)
    单表操作
    认证,权限
    协程,twisted
    定制起始url(scrapy_redis)
    浅谈深度优先和广度优先(scrapy-redis)
    scrapy-redis(调度器Scheduler源码分析)
    scrapy-redis
    xpath
  • 原文地址:https://www.cnblogs.com/jobs/p/29103.html
Copyright © 2011-2022 走看看