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

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

大俠們:這串代碼輸出什么以及原因?不要拷到VS中運行!

大俠們:這串代碼輸出什么以及原因?不要拷到VS中運行!

嗶嗶one 2018-12-07 08:00:10
聲明一個結構體類型的Point 1 public struct Point 2 { 3 private int x; 4 private int y; 5 public Point(int _x, int _y) 6 { 7 this.x = _x; 8 this.y = _y; 9 } 10 public void Change(int _x, int _y) 11 { 12 this.x = _x; 13 this.y = _y; 14 } 15 public override string ToString() 16 { 17 return string.Format("({0},{1})", this.x, this.y); 18 } 19 } ? 2、分布采取不同的操作后,會在控制臺輸出什么內容? 1 Point p = new Point(1, 1); 2 Console.WriteLine(p); 3 4 p.Change(2, 2); 5 Console.WriteLine(p); 6 7 object o = p; 8 Console.WriteLine(o); 9 10 ((Point)o).Change(3, 3); 11 Console.WriteLine(o);
查看完整描述

4 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

1,1 ? ?

2,2

2,2

2,2

和樓上一樣,我估計前三個沒有難度,你想考大家的是最后一個為什么是2,2吧?

查看完整回答
反對 回復 2018-12-16
?
森林海

TA貢獻2011條經驗 獲得超2個贊

自己理解的答案是:

1,1 ? ?

2,2

2,2

2,2

實際vs運行的答案:跟上一樣

樓主看下關注拆箱和裝箱的知識,這個題目是clr?vir c#?那本書上的吧

查看完整回答
反對 回復 2018-12-16
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

是的,開始看理解的不是很深,問下大家,關注的還是值類型和引用類型、線程棧和堆

查看完整回答
反對 回復 2018-12-16
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

Point p = new Point(1, 1);
Console.WriteLine(p); ? ? ?// 1,1
?
p.Change(2, 2);
Console.WriteLine(p); ? ? ?//2,2

object o = p; ? ? ? ? ? ? ? ? ? //裝箱, o 是一個新的引用類型的變量, 內部的值是當前p的值
Console.WriteLine(o); ? ? ?//2,2 ??

Point q = ((Point)o); ? ? ? ?//拆箱, ?q是一個新的值類型的變量 - 與原來的o沒關系了
q.Change(3, 3);
Console.WriteLine(o); ? ? ?//o 還是 2,2

Console.WriteLine(q); ? ? ?//新的q值 為 3,3

查看完整回答
反對 回復 2018-12-16
  • 4 回答
  • 0 關注
  • 582 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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