国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

大家一起探討兩道C#面試題

開發 后端
最近憋著因為項目要被印度搶走了,去別的組進行了一次面試。有幾個C#面試題,和大家進行探討,希望對大家有所幫助。

先看C#面試題大家可以先想想結果

C#面試題1. string aString = "a" + "b" + "c"; 有幾次內存分配;

C#面試題2. 多態的考察,如下的輸出結果。

  1. Code  
  2. public class Program  
  3.     {  
  4.         static void Main(string[] args)  
  5.         {  
  6.             A a = new C();  
  7.             a.Show();  
  8.             Console.ReadKey();  
  9.         }  
  10.     }  
  11.     public class A  
  12.     {  
  13.         public virtual void Show()  
  14.         {  
  15.             Console.WriteLine("A");  
  16.         }  
  17.     }  
  18.     public class B:A  
  19.     {  
  20.         public new virtual void Show()  
  21.         {  
  22.             Console.WriteLine("B");  
  23.         }  
  24.     }  
  25.     public class C:B  
  26.     {  
  27.         public override void Show()  
  28.         {  
  29.             Console.WriteLine("C");  
  30.         }  
  31.     } 

我自己的答案如下

答案

我的答案是:

1次,或者沒有

A。

引入和一點分析

1 第一個問題是值類型和引用類型說起的。面試的人問我關于值類型和引用類型。我blabla說了些堆棧和內存分配。我說了string是特殊的引用類型,他不可變。然后引出這個問題。string aString = "a" + "b" + "c"; 有幾次內存分配。按著開始的引導。我的答案是a一次,b一次,ab一次。因為ab還是string不可變。那么abc還需要一次。具體不數是幾次。面試官給我的答案也是很多次。他也是這么認為的。

回來之后我寫了這個代碼。看了下IL發現不是這么回事。CLR可以直接生成字符串"abc".

  1. CLR可以直接生成字符串

后來請教高人,多少明白是怎么個意思了。因為+的含義編譯器是知道的就是編譯器知道string不可變,所以提前在生成的IL代碼里面寫死了,寫在數據段里面了,等同于寫死了。如果編譯器比較先進的話他能檢測到aString也不需要內存。

  1. 2 看IL

  

看IL

IL中也是非常的清楚的現實了調用的是A中的Show方法。我的理解是:

A定義了方法show,注意B中的show方法雖然也是virtual的,但是之前有一個new。B從新定義了一個方法show。

C 中的override的是B定義的那個方法。

【這個時候實際上C里面有兩個show方法。】這段有待於斟酌。

出現這種情況的時候 如果通過基類調用的話 就選距離那個基類最近的方法。所以會調用A中的Show方法。

看了回復覺得徐少俠解釋的非常好!!

#23樓2009-08-10 14:46 | 徐少俠      

用距離基類近來解釋似乎不科學

A類有虛Show

B類就已經有兩個Show方法了

C也的確有兩個

由于最終的變量是A類型的,因此搜索函數入口時從基類A的入口表開始,根據虛方法定義查找子類的重寫方法,但是由于無法再B類定義中發現override方法
則最終調用的是A的現實

Ivony...解釋同樣精彩。

回復  引用  查看  刪除   #27樓2009-08-10 14:56 | Ivony...      

在C的內部,你就能調用到這三個方法:

  1. public class C : B  
  2. {  
  3. //...  
  4.  
  5. public void Test()  
  6. {  
  7. ((A) this).Show();  
  8. base.Show();  
  9. this.Show();  
  10. }  
  11.  
  12. }  
  13. =======================================  
  14.  
  15.  
  16. Code2  
  17.     public class Program  
  18.     {  
  19.         static void Main(string[] args)  
  20.         {  
  21.             A a = new C();  
  22.             a.Show();  
  23.             Console.ReadKey();  
  24.         }  
  25.     }  
  26.     public class A  
  27.     {  
  28.         public virtual void Show()  
  29.         {  
  30.             Console.WriteLine("A");  
  31.         }  
  32.     }  
  33.     public class B:A  
  34.     {  
  35.         public override void Show()  
  36.         {  
  37.             Console.WriteLine("B");  
  38.         }  
  39.     }  
  40.     public class C:B  
  41.     {  
  42.         public new void Show()  
  43.         {  
  44.             Console.WriteLine("C");  
  45.         }  
  46.     } 

【編輯推薦】

  1. 簡單介紹C#預處理
  2. 學習C#無詞尾符號經驗談
  3. C#調用QuickTest自動化
  4. 詳解C#正規表達式
  5. C#字符串插入html標簽
責任編輯:彭凡 來源: cnblogs
相關推薦

2009-08-11 14:59:57

一道面試題C#算法

2009-08-11 10:12:07

C#算法

2022-09-21 22:19:16

CSS面試題

2009-08-11 15:09:44

一道面試題C#算法

2021-04-13 08:50:21

JS作用域面試題

2024-11-28 09:57:50

C#事件發布器

2024-06-04 14:52:28

2024-10-11 17:09:27

2010-11-26 10:53:29

戴爾

2017-12-14 08:04:21

Java面試程序

2021-06-05 13:44:08

遞歸策略鏈表

2011-05-23 11:27:32

面試題面試java

2009-09-14 18:24:56

CCNA認證考試題庫

2018-03-06 15:30:47

Java面試題

2025-02-13 09:32:12

C#重寫override

2021-03-18 00:04:13

C# 類型數據

2023-10-10 08:00:07

2024-01-01 15:30:59

JavaScriptWeb 應用程序開發

2024-02-26 15:35:44

2024-04-28 08:23:18

點贊
收藏

51CTO技術棧公眾號

在线观看成人av| 日中文字幕在线| www.亚洲免费视频| 日韩视频永久免费| 精品视频一区在线视频| 678五月天丁香亚洲综合网| 日韩欧美主播在线| 天天色综合成人网| 亚洲美女淫视频| 精品美女国产在线| 亚洲精品日韩丝袜精品| 久色乳综合思思在线视频| 欧美—级高清免费播放| 欧美一级视频免费在线观看| 综合网中文字幕| 欧美激情论坛| 成人毛片视频网站| 男男互摸gay网站| 亚洲成人天堂| 麻豆传媒视频在线观看| 麻豆av在线播放| 免费黄网站在线| 欧美精品高清| 香蕉大人久久国产成人av| 五月综合久久| 欧美va久久久噜噜噜久久| eeuss鲁片一区二区三区在线观看| 亚洲一区二区精品3399| 欧美精品tushy高清| 亚洲欧美日韩中文视频| 日韩中文字幕av| 国产伦精品一区二区三区四区免费| 欧美亚洲另类色图| 国产中文字幕在线| 亚洲淫成人影院| 国产精品zjzjzj在线观看| 精品九九在线| 国产精品欧美精品| 亚洲成人激情在线| 国产69久久精品成人| 欧美日韩高清不卡| 久久影院免费观看| 自慰无码一区二区三区| 香蕉视频免费在线播放| 亚洲五码在线| 蜜臀av一区二区三区| 成人免费在线视频| 亚洲黄页视频免费观看| 精品欧美日韩| 最近高清中文在线字幕在线观看| 91精品国产一区二区在线观看| 一区二区三区四区电影| 国产精品一区久久久久| 亚洲精品在线观看网站| 美乳视频一区二区| 羞羞网www| 韩国三级成人在线| 久久久久久久高潮| 一本到高清视频免费精品| 91色p视频在线| 亚洲精品国产无套在线观| 亚洲h精品动漫在线观看| 精品亚洲va在线va天堂资源站| 欧美疯狂性受xxxxx另类| 欧美日韩中文字幕在线播放| h网站在线播放| 一区二区三区四区高清视频| 另类中文字幕网| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美视频在线观看 亚洲欧| 国产亚洲精品一区二555| 免费高清一区二区三区| 91三级在线| 国产视频一区三区| 亚洲成人福利片| 欧美一区二区三区系列电影| 91热福利电影| 国产精品久久一区二区三区不卡| 免费观看不卡av| 精品制服美女久久| 亚洲精品国产精品国产自| 欧美日韩视频免费在线观看| 黄色免费在线观看网站| 午夜亚洲福利在线老司机| 久久久免费电影| 91精品大全| 精品在线一区二区三区| 欧美mv和日韩mv国产网站| 久久伦理网站| 国产v日韩v欧美v| 中文天堂在线一区| 日韩免费在线免费观看| 国产aa视频| 91精品动漫在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 蜜桃成人在线视频| 国产偷自视频区视频一区二区| 亚洲国产精品va在线| 欧美亚洲日本在线观看| 国产精品一二二区| 91精品国产高清久久久久久91裸体| 成人影院www在线观看| 99久久亚洲一区二区三区青草| 欧美黑人又粗大| 日韩在线资源| 不卡一区二区在线| 久久久在线观看| 在线国产情侣| 亚洲成a人片在线不卡一二三区| 欧美13一14另类| 亚洲一区二区三区四区电影| 无码av中文一区二区三区桃花岛| 天天色综合社区| 国产成人精品免费看| 亚洲天堂av网| 波多结衣在线观看| 99re免费视频精品全部| 亚洲国产精品综合| 亚洲毛片网站| 91久久久久久| 99成人在线视频| 欧美一级淫片aaaaaaa视频| 欧美黄色a视频| 亚洲精品网站在线播放gif| 超碰个人在线| 欧美成人官网二区| 97视频精彩视频在线观看| 亚洲二区在线视频| 黄色高清在线观看| 欧美激情自拍偷拍| 亚洲综合日韩中文字幕v在线| 黄页大全在线免费观看| 中文乱码免费一区二区三区下载| 日本高清免费不卡视频| 成人av在线不卡| 欧美 日韩 国产精品免费观看| 久久久国产一区| 松下纱荣子在线观看| 欧美mv日韩mv国产网站| 男人添女人荫蒂免费视频| 欧美另类专区| 国产成人精品在线播放| 中文字幕一区二区三区中文字幕| 亚洲色图av在线| xxxx日韩| 美女撒尿一区二区三区| 成人线上视频| 国产亚洲一级高清| 欧美成人毛片| 夜夜嗨av色一区二区不卡| 深夜国产在线播放| 欧美日韩三级在线| 欧美在线观看在线观看| 欧美日韩一区二区三区在线 | av7777777| 夜夜揉揉日日人人青青一国产精品 | 午夜视频成人| 在线播放精品一区二区三区| caoporn视频在线| 日韩不卡在线观看| www在线观看黄色| 欧美裸体xxxx极品少妇| 日韩深夜影院| 国模精品系列视频| 成人同人动漫免费观看| 制服诱惑一区| 久久一区欧美| 水蜜桃亚洲一二三四在线| 国产一区二区不卡| 香蕉网站在线| 欧美一区二区三区四区久久| 91九色porn在线资源| 波霸ol色综合久久| 欧美精品黄色| 在线精品日韩| 成人在线视频首页| 午夜网站在线观看| 欧美精品欧美精品系列| 五月婷婷深爱五月| 一区二区三区精品| 夜色资源站国产www在线视频| 精品视频全国免费看| 日韩欧美一区二区三区免费观看 | 久热综合在线亚洲精品| 干日本少妇视频| 亚洲欧洲成人自拍| 91精品久久久| 麻豆久久久9性大片| 中文字幕亚洲在| 日本中文字幕视频| 欧美中文字幕一二三区视频| 亚洲欧美综合区自拍另类| 久久伊人国产| 国产欧美精品久久久| 麻豆传媒一区二区三区| 嫩草影院国产精品| 欧美男生操女生| 国产精品宾馆| 国产911在线观看| 亚洲午夜av久久乱码|