PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_Sharp
[问题] 传值/址呼叫的问题
楼主:
Boom3
(boom3)
2015-01-10 13:31:41
private void btncbv_Click(object sender, EventArgs e)
{
int x = 5;
lblcbv1.Text = string.Format("参数传递之前的值:{0}", x);
callbyvalue(x);
lblcbv2.Text = string.Format("参数传递之后的值:{0}", x);
}
private int callbyvalue(int y)
{
y += 1;
return y;
}
执行起来没问题,但我想问的是
为何lblcbv2.text的值是5不是6。
可是我有rerutn回去阿?
但我如果把callbyvalue(x); 放到里面,如下
lblcbv2.Text = string.Format("参数传递之后的值:{0}", callbyvalue(x));
这时候显示的就是6了。
我知道可以用ref的方式,
但为什么上面这个例子会是这样?
刚学C#! 麻烦各位~谢谢
作者:
BigLoser
(大鲁蛇)
2015-01-10 14:10:00
因为是call by value阿..所以是5我有一个x是5,我有一个y,我给予y跟x一样的值也是5今天y变成6了,x当然还是5------------------------------------------当你印出5的时候是因为,你印了x当你印出6的时候是因为,你印了y
作者:
ssccg
(23)
2015-01-10 16:56:00
你有return回去,你又没assign给xreturn的意思是 callbyvalue(x) 这个expression值是return的值,不会动到传进去的参数x你应该先搞清楚function、return是在做什么想想如果没有x,你是用callbyvalue(5),那5会变成6?
作者:
andymai
(人生只有一次)
2015-01-11 04:01:00
如果要探讨"传值/传址"的话~应该要去官网看一下...
http://tinyurl.com/l2tkrhz
传递参数
作者:
Nowtreel
(盗版陈金城)
2015-01-11 08:11:00
若您x想变6 必须 x=callbyvalue(x); x才会是return的值
楼主:
Boom3
(boom3)
2015-01-13 18:50:00
谢谢各位!
继续阅读
[问题] C#程式在别台电脑执行
walter0914
[问题] 再次请教版上前辈
prettywendy
[问题] Kinect2 的开发
srxrrr
Re: [问题] ?: 运算子的问题
VVll
[问题] ?: 运算子的问题
apologize
[问题] RequiredFieldValidator 问题
kisha024
集合取乱数后删值
linbanana
Re: [问题] 新手学C#,有关{get;set;}的疑问
AmosYang
[问题] ASP .Net可以做到显示行号吗?
don750421
Re: 请问有c#的高手吗?
linbanana
Links
booklink
Contact Us: admin [ a t ] ucptt.com