WEB开发网
开发学院软件开发C语言 对于C#中b=a的N种情况分析 阅读

对于C#中b=a的N种情况分析

 2010-09-30 21:00:39 来源:WEB开发网   
核心提示: 结论:问题集中在b=a这句话上,这时b指向的是a的一份copy,对于C#中b=a的N种情况分析(4),指向全局堆栈上的与a不同的地址,所以b和a是没有任何关系的,所以按照集合来处理,写了几段测试代码,b不随a的改变而改变,2) 集合 1.集合中一笔数据的增删修改

对于C#中b=a的N种情况分析

      结论:问题集中在b=a这句话上。这时b指向的是a的一份copy,指向全局堆栈上的与a不同的地址。所以b和a是没有任何关系的,b不随a的改变而改变。

2) 集合

      1.集合中一笔数据的增删修改。

            List<UserInfo> a = new List<UserInfo>();
            List<UserInfo> b = a;
            a.Add(new UserInfo() { UserName = "Baobao", Age = 27 });
            Console.WriteLine("b.Count after adding: " + b.Count);
            Console.WriteLine();
            Console.WriteLine("After modifying a[0]");
            a[0].UserName = "AndersLiu";
            a[0].Age = 30;
            Console.WriteLine("b[0].UserName: " + b[0].UserName);
            Console.WriteLine("b[0].Age: " + b[0].Age);
            Console.WriteLine();
            a.Remove(a[0]);
            Console.WriteLine("b.Count after deleting: " + b.Count);

      输出结果:

对于C#中b=a的N种情况分析

      结论:b随着a中数据增减修改而变化。因为b和a指向托管堆上同一个List<UserInfo>实例的内存地址,这和复合类型是一样的。

数组就不说了,可以看作是多个变量的集合,所以按照集合来处理。写了几段测试代码,放在Demo中。

上一页  1 2 3 4 

Tags:对于 情况 分析

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接