A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 祝冰鑫 中级黑马   /  2012-2-28 22:04  /  2034 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        int stance;

        public int Stance
        {
            get
            {
                if (stance > 0)
                    return stance;
            }
        }

声明一个变量   只读属性    这样写为什么报错啊

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

9 个回复

倒序浏览
注意,return 的作用域。。。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
原本的get里面是这样写的
get
{
       return stance;
}

加了一个条件不行吗???可以具体说说嘛???

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
祝冰鑫 发表于 2012-2-28 22:12
原本的get里面是这样写的
get
{

如果要return的话,属性里的作用域中的每个分支都要有返回值,就像你写的if(条件)return 还有个else也得return ,当然如果分支中有没有return的,放在最后一个return也行。。

private int num;

        public int Num
        {
            get
            {
                if (num > 1)
                    return num;
                return num;
            }
        }

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
既然是只读属性,那么久不可以修改啊!我好像只见过在set中设置if()语句条件的,但是get中就。。。。。。等你解决了告诉我一声啊!!!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
孙琦 发表于 2012-2-28 22:19
如果要return的话,属性里的作用域中的每个分支都要有返回值,就像你写的if(条件)return 还有个else也得r ...

那在那里设一个if不就没有意义了吗???
回复 使用道具 举报
许全通 发表于 2012-2-28 22:20
既然是只读属性,那么久不可以修改啊!我好像只见过在set中设置if()语句条件的,但是get中就。。。。。。 ...

我后来是没有在get里面加条件,是在构造函数里加的,所以来这问问
回复 使用道具 举报
邱国 中级黑马 2012-2-29 00:33:53
8#
我猜vs里面的错误原因应该是:并不是每一个路径都有返回值

这样意思就很明显了,

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
成刚 中级黑马 2012-2-29 00:40:43
9#
我看你这个代码,你把stance变量定义到方法的外面,方法里面根本都读取不到的,首先会报一个“当前上下文不存在stance”{:soso_e112:}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
付茂炯 来自手机 中级黑马 2012-2-29 01:02:32
10#
你写了if语句,满足条件有返回值,不满足的情况下的返回值你没写。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马