| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 667 人关注过本帖
标题:按值传递引用类型 中间那句为什么赋值不对呢?
只看楼主 加入收藏
hellation
Rank: 2
等 级:论坛游民
帖 子:38
专家分:56
注 册:2015-4-11
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
按值传递引用类型 中间那句为什么赋值不对呢?
namespace 如何实现按值传递引用类型
{
    class Program
    {
        static void Main(string[] args)
        {
            //按值传递引用类型
            Console.WriteLine("输入用户年龄信息:");
            MyInfo ferd = new MyInfo("亭子", 22);
            Console.WriteLine("未按值传递引用类型前:");
            ferd.PrintInfo();
            SendAPersonByValue(ferd);
            Console.WriteLine("按值传递引用类型后:");
            ferd.PrintInfo();
            Console.ReadKey();
        }
        public static void SendAPersonByValue(MyInfo info)
        {
                //info.MyAge = 23;
                info = new MyInfo("小名",23);          //重新赋值
        }
    }

    class MyInfo
    {
        public string MyName;
        public int MyAge;
        public MyInfo(string name, int age)     //构造函数!(1.与类同名 2.没有返回值)
        {
            MyName = name;
            MyAge = age;
        }
        public MyInfo() { }
        public void PrintInfo()                //一般函数
        {
            Console.WriteLine("{0}年龄是{1}岁", MyName, MyAge);
        }
    }
}
搜索更多相关主题的帖子: 如何 信息 用户 
2015-04-28 20:27
hellation
Rank: 2
等 级:论坛游民
帖 子:38
专家分:56
注 册:2015-4-11
收藏
得分:0 
就是重新赋值的那句!
2015-04-28 20:59
over1230
Rank: 8Rank: 8
等 级:贵宾
威 望:25
帖 子:113
专家分:897
注 册:2009-10-9
收藏
得分:10 
我的理解,不知道对不,
SendAPersonByValue(ferd);是把ferd的存储空间位置传递给了 info,而
info = new MyInfo("小名",23);          //重新赋值
这里又重新new 了一个,就创建了一个新的存储空间,info就指向了新创建的存储空间,而ferd还是指向他原来的存储空间,所以ferd的值 并没有变。
如果 不new ,用//info.MyAge = 23; 这句,就是改变的ferd所指向的存储空间的值 。
2015-04-29 15:26
Maick
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:32
帖 子:251
专家分:1314
注 册:2012-9-21
收藏
得分:10 
为什么不对.提示什么?提示什么?
2015-05-04 10:14
Maick
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:32
帖 子:251
专家分:1314
注 册:2012-9-21
收藏
得分:0 
最后结果不是 小名,23 吗
2015-05-04 10:17
快速回复:按值传递引用类型 中间那句为什么赋值不对呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016848 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved