首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

问个引用类型的有关问题

2012-04-09 
问个引用类型的问题。C# codeclass Program{static void Main(string[] args){ListPerson list new Lis

问个引用类型的问题。

C# code
    class Program    {        static void Main(string[] args)        {            List<Person> list = new List<Person>();            Get(list, 1);                        Console.ReadLine();        }        static void Get(List<Person> list, int i)        {            if (i == 3)                return;            if (list == null)                list = new List<Person>();            Person p = new Person();            p.ID = i;            list.Add(p);                        Get(p.list, ++i);        }    }    class Person    {        public int ID { get; set; }        public List<Person> list { get; set; }    }

list.Add(p);这句把p添加到集合中,然后在把p.list继续添加,可是为什么添加不到集合中去呢?
而如果先实例化在传进去就可以,为什么呢?
 p.ID = i;
 list.Add(p);  
p.list = new List<Person>(); 


[解决办法]
看错了。

你应该传Person对象。

引用类型(除了string)加不加ref out没差别吧
当然有差别,前者传值(引用),后者传引用(引用的引用)
[解决办法]
如果不加ref,要这样写:
C# code
    class Program    {        static void Main(string[] args)        {            List<Person> list = new List<Person>();            Get(list, 1);                        Console.ReadLine();        }        static void Get(List<Person> list, int i)        {            if (i == 3)                return;            Person p = new Person();            p.ID = i;            list.Add(p);               p.list= new List<Person>();            Get(p.list, ++i);        }    }    class Person    {        public int ID { get; set; }        public List<Person> list { get; set; }    } 

热点排行
Bad Request.