猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
c#奇怪的问题。高手进
为什么执行完set方法后.list还是为null public partial class Form1 : Form { public Form1() { InitializeComponent(); } List
list = null; private void button1_Click(object sender, EventArgs e) { set(list); } private void set(List
l) { l = new List
(); } }
LEATH
浏览 357
回答 9
9回答
茅侃侃
这是一定的 , set 只是创建 I
0
0
0
富国沪深
list = l=null 然后set 后 l 指向了其他的内存 list 还是老样子 null
0
0
0
开满天机
你没 out或ref 。。
0
0
0
慕田峪7331174
增加 out 或 ref 吧
0
0
0
幕布斯7119047
上面的各位都是对的。 稍微补充一下:在C#里,方法的参数有引用传和值传两种。只有加了ref的才是引用传。值传时方法内部使用参数的副本,引用传世使用参数的引用。在你的代码里,set()方法的参数实际上传了list 变量的值,即指向null的内存地址(可以这样理解,实际上是一个包装过的指针),set()方法内部,l的值是null的内存地址,但l和之前的list是不同的。对l的操作不会影响list,但是由于l和list指向的地址是同一个,对l指向的地址的操作,同样会对list起作用。
0
0
0
萧十郎
@彬彬@科比: 实际上,还有一个out,但是和ref不一样。带out的参数可以没有初值,其他和ref一样。 对于引用传和值传两个概念,实际上就是看方法接到的参数是对象本身还是对象的副本。
0
0
0
小唯快跑啊
增加 out 或 ref
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
.NET
.net 中 字符串含有超链接,如何给超链接自动加上a标签?
1 回答
请问.net 中用jquery传值安全吗?
2 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续