代码如下:
public float GetCf(string comboItem)
{
float Cf;
if(comboItem =="稍")
{ Cf = 0.2F;
return Cf;
}
else if(comboItem == "较")
{ Cf = 0.4f;
return Cf;
}
else if(comboItem == "很")
{ Cf = 0.6F;
return Cf;
}
else if(comboItem == "极")
{ Cf = 0.8F;
return Cf;
}
}
然后在另一个类中调用该方法,但运行后系统提示:“ExpertSystem.SqlData.GetCf(string)” : 并非所有的代码路径都返回值
我写的程序里还有两个同样的错误,但的确都定义了返回值的类型和return语句,请大家帮忙看看,到底是什么问题!再次先谢过了!

解决方案 »

  1.   

    --試試這樣?
    public   float   GetCf(string   comboItem) 

    float   Cf; 
    if(comboItem   == "稍 ") 
      Cf   =   0.2F; 
    else   if(comboItem   ==   "较 ") 
      Cf   =   0.4F; 
    else   if(comboItem   ==   "很 ") 
      Cf   =   0.6F; 
    else   if(comboItem   ==   "极 ") 
      Cf   =   0.8F; return   Cf;  

      

  2.   

    如果comboitem都不是你写的那几个字,返回什么?这就是“并非所有的代码路径都返回值 ”
    再写一个else return就可以了
      

  3.   

    public   float   GetCf(string   comboItem)
    {
    float   Cf = 0F;
    if(comboItem   == "稍 ")
    { Cf   =   0.2F;
    }
    else   if(comboItem   ==   "较 ")
    { Cf   =   0.4f;
    }
    else   if(comboItem   ==   "很 ")
    { Cf   =   0.6F;
    }
    else   if(comboItem   ==   "极 ")
    { Cf   =   0.8F;
    }
    return   Cf;
    }
      

  4.   

    回复playwarcraft:如果按你说的那样,系统提示:使用了未赋值的局部变量“Cf”;回复  soaringbird:按照你说的可以解决,但是我定义的comboitem是一个COMBOBOX控件,它的ITEM 已经添加进去了,只有这四项。所以应该不会再有ELSE.
    不过按照你的思路还是可以解决的。多谢!
           
          
      

  5.   

    虽然combobox只有那四项,但这个方法不知道啊,为了以防万一,在这四项之外,你应该返回一个默认值,或者错误代码,或者抛出一个异常
      

  6.   

    回复lye2000000_super :
     
    你的方法也可以解决。非常感谢!
      

  7.   

    回复     soaringbird: 
     
    反正是问题已经解决了,非常感谢!我还有一个问题,刚给您发消息了,您看见了吗?