如何判定一个函数的返回值是不是 null?
这样写行吗?
 
 if ( FunctionA() == null)
 {
//Other operation……
 }

解决方案 »

  1.   

    一般来讲,你可以在函数中把返回值定义一个,如return result,然后检查result是否==null就行了,不要象上面一样检查函数 FunctionA() == null,这样会出无法将object对象转换成string的错误。
      

  2.   

    可以这样,但要看你的FunctionA()函数的返回值 和 类型,如果它始终不返回null,那么你的这个条件就不会成立。
    下列是null相应的默认值列表:值类型 默认值 
    bool false 
    byte 0 
    char '\0' 
    decimal 0.0M 
    double 0.0D 
    enum 表达式 (E)0 产生的值,其中 E 为 enum 标识符。 
    float 0.0F 
    int 0 
    long 0L 
    sbyte 0 
    short 0 
    struct 将所有的值类型字段设置为默认值并将所有的引用类型字段设置为 null 时产生的值。 
    uint 0 
    ulong 0 
    ushort 0 
      

  3.   

    可我这样用却不行呀?
    有一个函数调用,一般情况下,如果成功的话,就返回一个正整数,如果失败,就返回null,
    我想知道它什么时候是 null, 就用了上面的语句,结果编译器报错,就像第一们说的那样,出现了“无法将object对象转换成string”之类的错误
      

  4.   

    VOID是不返回值的,自定的函数必须要有RETURN语句你才能判断是否为NULL
      

  5.   

    有一个函数调用,一般情况下,如果成功的话,就返回一个正整数,如果失败,就返回null
    --------------------------------------------------------------------------------
    返回一个正整数的函数是不可能返回null的,因为int是值类型,而只有引用类型才可能为null
      

  6.   

    只有引用类型才可能是null,而值类型不会为null,所谓的值类型是指System.ValueType名称空间下的类型,int,float,struct都是值类型的。
    如果是引用类型,LZ写的就可以了。
      

  7.   

    if ( FunctionA() == null)
    {
    //Other operation……
    }
    这段代码挺憋脚的建议这样修改FunctionAReturn result = FunctionA() ;
    if(result.IsNull)
    {
    //Other operation……
    }