标题:新人报道 对象作为值传递疑惑
只看楼主
扫地大爷
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2021-5-20
结帖率:100%
 问题点数:0 回复次数:2 
新人报道 对象作为值传递疑惑
namespace 引用类型对象作为值参数传递_看书不能理解_
{
    class Myss {

        public int Myss1 = 20;

}
    class Program
    {
        static void Test(Myss f1) {
            f1.Myss1 = 50;
            Console.WriteLine($"After member assigment; {f1.Myss1}");
            f1 = new Myss();
            Console.WriteLine($"After new object creation {f1.Myss1}");

        }

        static void Main(string[] args)
        {
            Myss a1 = new Myss();
            Console.WriteLine($"Before method call; {a1.Myss1}");
            Test(a1);
            Console.WriteLine($"afore method call; {a1.Myss1}");
            Console.ReadKey();
        }
    }
}
为什么a.Myss1==50
搜索更多相关主题的帖子: Console new 值传递 对象 WriteLine 
2021-05-21 07:36
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:0 
static void Main(string[] args)
        {
            Myss a1 = new Myss();
            Console.WriteLine($"Before method call; {a1.Myss1}");
            Test(a1);{此调用运行的是 Test(f1),只是把a1的各个值传递给了f1,在此只有一个,就是f1.Myss1=a1.Myss1(赋值),但是a1还在原位置呆着,子程序运行结束,f1寿命终结}
            Console.WriteLine($"afore method call; {a1.Myss1}");
            Console.ReadKey();
        }
2021-06-05 16:42
扫地大爷
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2021-5-20
得分:0 
回复 2楼 zbjzbj
多谢大佬指点
2021-06-16 22:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505793-1-1.html




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

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