黑马程序员技术交流社区

标题: return 的问题 [打印本页]

作者: 张振    时间: 2013-3-30 16:53
标题: return 的问题
本帖最后由 张振 于 2013-4-1 20:20 编辑

截取了索引器代码的一小部分 主要问题是 给我return的报错
public string this[int index]
        {
            get
            {
                if (index == 1)
                { return FirstN ; }
                else if (index == 2)
                { return SecondN; }
               
            }
            set
            {
                if (index == 1)
                { FirstN=value; }
                else if (index == 2)
                { SecondN = value; }
                else
                { }
运行之后它出现了错误        1        “索引器.Person.this[int].get”: 并非所有的代码路径都返回值        
请问各位这是啥意思啊 怎么解决

作者: _王涛    时间: 2013-3-30 17:11
public string this[int index]
这是你的方法吗?而且方法名还用了this关键字...
如果是方法,方法名不能用java中关键字,而且格式是方法名()
作者: 张正强    时间: 2013-3-30 17:11
ge属性必须有返回值,你可以这样尝试:
  1. get
  2.             {
  3.                 string str = "";
  4.                 if (index == 1)
  5.                 { str = FirstN; }
  6.                 else if (index == 2)
  7.                 { str = SecondN; }
  8.                 return str;
  9.             }
复制代码

作者: _王涛    时间: 2013-3-30 17:12
_王涛 发表于 2013-3-30 17:11
public string this
这是你的方法吗?而且方法名还用了this关键字...
如果是方法,方法名不能用java中关键 ...

还有,你的返回类型首字母因该大写,String
作者: 张振    时间: 2013-3-30 17:20
_王涛 发表于 2013-3-30 17:11
public string this
这是你的方法吗?而且方法名还用了this关键字...
如果是方法,方法名不能用java中关键 ...

这是索引器···
作者: 郑丹丹1990    时间: 2013-3-30 18:03
很显然set没有返回值
作者: 刘胜寒    时间: 2013-3-30 18:23
你的set哪个部分,好像丢了个"}"这个符号。你写的方法实在是..
我真的看不懂啊...
我怎么给你解决呢
作者: guobin_lu    时间: 2013-3-30 18:59
{:soso_e132:}
作者: 张振    时间: 2013-3-30 20:19
似水像火 发表于 2013-3-30 18:23
你的set哪个部分,好像丢了个"}"这个符号。你写的方法实在是..
我真的看不懂啊...
我怎么给你解决呢 ...

哦 不好意思 我只是截取了错误的一段 不过后来我懂了 好像是return返回值 我编写的这个代码返回值会有不符合 int的赋值  所以出现 了我说的这个错误
作者: DWC_5101    时间: 2013-3-30 20:34
原因:你写的get属性,只有等于1或2的时候有return返回值。
解决:在get属性里,再添加else处理即可。如:
            get
             {
                 if (index == 1)
                 { return FirstN ; }
                 else if (index == 2)
                 { return SecondN; }
                 else
                 { return "";}
             }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2