C#类型转换运算符怎么用

这个li被转化为int类型了,为什么还能调用LimitedTnt中的TheValue属性呢?returnli.TheVakue这个语句返回到哪?最后输出的数据中为什么va... 这个li被转化为int类型了,为什么还能调用LimitedTnt中的TheValue属性呢?
return li.TheVakue这个语句返回到哪?
最后输出的数据中为什么value:100 而不是500?
展开
 我来答
超大蒲公英
推荐于2017-09-03 · TA获得超过741个赞
知道小有建树答主
回答量:758
采纳率:75%
帮助的人:742万
展开全部

这道题是在教你,implicit如何使用。

这里是指定,int类型可以隐式的转为LimitedInt。

在main方法中

LimitedTnt li =500;便用到了此方法。500是int,但确可以转为li,如果没有上面,将会产生编译错误。

这其实只是c#语法,实际上,在执行这句时,他就是调用了上面的方法。


至于为什么是100而不是500,是因为

这里定义了maxValue限制了最大值。

更多追问追答
追问
LimitedTnt li =500;调用了那个方法后,根据return li 这句是不是要返回一个li的值呢?这个值是多少?还有这个x跟value和li=500有什么关系呢?如果您能帮我解答我加10分
追答
LimitedTnt li =500;这句调用了下面的方法。

public static implicit operator LimitedInt(int x){//参数x的值就是500
LimitedInt li=new LimitedInt();//这里创建一个LimitedInt的实例。
li.TheValue=x;//将500赋给TheValue属性。TheValue属性内部是使用_theValue字段。
//但由于TheValue的set代码有逻辑判断。
// _theValue=value>MaxValue?MaxValue:value;这段代码执行结果。_theValue的值为100,
return li;//返回li,这是LimitedInt的实例,TheValue为100;
}

该方法结束后。LimitedTnt li便指向了方法返回的对象。li.TheValue为100;
匿名用户
2014-12-14
展开全部
LimitedTnt li = 500
这一句就决定了实际值是100

由于LimitedTnt中_theValue是私有变量,实际是通过属性 TheVakue 进行读写操作的,定义时调用这个属性的set,由于超过最大值,自动赋成100

return li.TheVakue其实就是调用属性 TheVakue 的get
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式