writeline方法属于类javaList类型传递是值还是引⽤?如何传递值?
直接传递,⽏庸置疑,引⽤。 如何传递值呢,这⾥有三段代码作为例⼦来描述:
1.
1. 2.
1. 3.List<string> list=new List<string>();
ModifyList(list);
Console.WriteLine(list.Count)
private void ModifyList(List<string> list)
{
//这⾥的list其实已经是⼀个引⽤副本了,但是所指向的内存地址仍然是原本⽅法外⾯的对象的,所以后⾯⽤该引⽤的Add⽅法所操作的,仍然是原本⽅法外⾯的list.Add("1");
list.Add("2");
list.Add("3");
}
List<string> list=new List<string>();
ModifyList(list);
Console.WriteLine(list.Count)
private void ModifyList(List<string> list)
{
list = new List<string>(); // 这⾥其实已经将引⽤指向了新的内存地址,所以后续的Add操作是在操作新对象的内存数据,⽽原来⽅法外的对象其实是没有受到影响list.Add("1");
list.Add("2");
list.Add("3");
}
List<string> list=new List<string>();
List<string> copy = list; // 复制⼀个引⽤
ModifyList(ref list);
Console.WriteLine(copy.Count) // 复制的这个引⽤仍然指向原来最早的那个List
Console.WriteLine(list.Count) // list这个引⽤已经在ModifyList⽅法⾥被修改了,指向的是在ModifyList⽅法⾥新new出来的对象了
private void ModifyList(ref List<string> list)
{
list = new List<string>(); // 因为有ref,所以这⾥其实已经将⽅法外原本的那个引⽤也指向了新的内存地址,所以后续的Add操作是在操作新对象的内存数据,并list.Add("1");
list.Add("2");
list.Add("3");
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论