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

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

 2010-09-30 21:00:39 来源:WEB开发网   
核心提示: 2. 复合类型 复合类型是由string、int、double这些简单类型组成的, 分别定义一个复合的引用类型(class)和一个复合的值类型(struct),对于C#中b=a的N种情况分析(2),classUserInfo{publicstringUserName;publicintAge;

      2. 复合类型

      复合类型是由string、int、double这些简单类型组成的。

      分别定义一个复合的引用类型(class)和一个复合的值类型(struct)。 

        class UserInfo
        {
            public string UserName;
            public int Age;
        }
        struct UserInfo2
        {
            public string UserName;
            public int Age;
        }

先讨论引用类型: 

            UserInfo a = new UserInfo() { UserName = "Baobao", Age = 27 };
            UserInfo b = a;
            a.UserName = "AndersLiu";
            a.Age = 30;
            Console.WriteLine("b.UserName: " + b.UserName);
            Console.WriteLine("b.Age: " + b.Age);

      输出结果:

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

      结论:b和a 仍然指向托管堆上的同一个UserInfo实例的地址。而UserInfo实例的成员又包含着UserName和Age分别在托管堆和全局堆栈上的地址。所以修改a的成员UserName和Age,只是改变这两个成员的地址,而没有改变UserInfo实例的地址,所以b的成员UserName和Age也会跟着改变。

上一页  1 2 3 4  下一页

Tags:对于 情况 分析

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