亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于C#委托的一個問題

關于C#委托的一個問題

梵蒂岡之花 2018-08-10 09:06:22
delegate int Add(); class Program { static void Main(string[] args) { MyClass myclass=new MyClass (); Add add = myclass.add1; int result1 = add();//此處添加用以個result1來接收調用委托的返回值 add += myclass.add2; add += myclass.add1; Console.WriteLine("最后value的值:{0}", myclass.value);//為什么加了result1后value的值就會改變呢?而不加result1時Value值就不會改變,我覺得value是值類型加不加都不應該改變啊 Console.WriteLine("第一次返回的值:{0}", result1); Console.WriteLine("最后的結果:{0}", add()); Console.ReadKey(); } } class MyClass { public int value = 5; public int add2() { value += 3; return value; } public int add1() { value += 2; return value; } } 不明白為什么加了result1后value的值就會改變呢?而不加result1時Value值就不會改變,我覺得value是值類型加不加都不應該改變啊 ,請求高手指點一二
查看完整描述

2 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

= =才疏學淺,真沒看出來哪兒和傳參有關系了。MyClass的Add1、2兩個方法都直接操作了成員value,這里把委托理解成函數指針類似的東西思考,Add()就是myclass.Add1(),value當然要變了。

查看完整回答
反對 回復 2018-08-13
  • 2 回答
  • 0 關注
  • 519 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號