搜尋
首頁後端開發C#.Net教程C# 一些面試題的實例教程

C# 一些面試題的實例教程

Jun 23, 2017 pm 02:30 PM
.net總結相關試題面試

最近一個搞NET開發的朋友離職了,想讓我給他找點關於NET的相關面試題,準備抱一下佛腳,迎接新的挑戰。

我趕緊找到以前檢索的各種寶典,試題,今天梳理一下關於NET的基礎知識點。

1、物件導向語言的三大特性:封裝、繼承、多型別;

2、介面和類別有什麼異同:

  不同點:

   ①介面不能直接實例化。

   ②介面只包含方法或屬性的聲明,不包含方法的實作。

   ③介面可以多繼承,類別只能單繼承。

   ④表達的含義不同,介面主要定義一種規範,統一呼叫方法,也就是規範類,約束類,類別是方法功能的實作和集合

 相同點:

   ①介面、類別和結構都可以從多個介面繼承。

   ②介面類似於抽象基底類別:繼承介面的任何非抽象類型都必須實作介面的所有成員。

   ③介面和類別都可以包含事件、索引器、方法和屬性。

3、抽象類別和介面有什麼異同

  ①繼承:介面支援多繼承;抽象類別不能實現多繼承。

  ②表達的概念:介面用於規範,更強調契約,抽象類別用於共性,強調父子。抽象類別是一類事物的高度聚合,那麼對於繼承抽象類別的子類別來說,對於抽象類別來說,屬於"Is A"的關係;而介面是定義行為規           範,強調「Can Do」的關係,因此對於實作介面的子類別來說,相對於介面來說,是"行為需要按照介面來完成"。

  ③方法實作:對抽象類別中的方法,即可以給出實作部分,也可以不給;而介面的方法(抽象規則)都無法給出實作部分,介面中方法不能加修飾符。

  ④子類別重寫:繼承類別對於兩者所涉及方法的實作是不同的。繼承類別對於抽象類別所定義的抽象方法,可以不用重寫,也就是說,可以延用抽象類別的方法;而對於介面類別所定義的方法或屬性來說,在繼承類別         中必須重寫,給出對應的方法和屬性實作。

  ⑤新增方法的影響:在抽象類別中,新增一個方法的話,繼承類別中可以不用作任何處理;而對於介面來說,則需要修改繼承類,提供新定義的方法。

  ⑥介面可以作用於值型別(枚舉可以實作介面)和參考型別;抽象類別只能作用於參考型別。

  ⑦介面不能包含欄位和已實作的方法,介面只包含方法、屬性、索引器、事件的簽章;抽象類別可以定義欄位、屬性、包含實作的方法。

4、virtual、sealed、override和abstract的區別

  ①virtual申明虛方法的關鍵字,說明該方法可以被重寫

  ②sealed繼承

  ③override重寫基底類別的方法

  ④abstract申明抽象類別和抽象方法的關鍵字,抽象方法不提供實現,由子類別實現,抽象類別不可實例化。

5、重載(override)和重寫(overload)有什麼區別

  重載:當類別包含兩個名稱相同但簽名不同(方法名相同,參數列表不相同)的方法時發生方法重載。用方法重載來提供在語意上完成相同而功能不同的方法。 (一個類別中、多個方法)

  重寫:在類別的繼承中使用,透過覆寫子類別方法可以改變父類別虛擬方法的實作。 (二個類別以上)

 6、結構體和類別的區別

  ①結構體是值類型,類別是引用類型
  ②結構體不支援無慘構造函數,不支援析構函數,且不能有protected修飾;
  ③結構體常用於資料存儲,類別class多用於行為;
  ④類class需要用new關鍵字實例化對象,struct可以不適用new關鍵字;
  ⑤類class可以為抽象類,struct不支援抽象;

 7、out和ref的異同點

  ①ref要求參數在使用前要明確初始化,out要在方法內部初始化;

  ②out適合用在需要retrun多個回傳值的地方,而ref則用在需要被呼叫的方法修改呼叫者的參考的時候。

  ③ref是有進有出,out是只出不進;(ref可以把參數的數值傳遞進函數,但是out是要把參數清空,就是說你無法把一個數值從out傳遞進去的,out進去後,參數的數值為空)

 8、值型別與參考型別的差異

  ①值型別:就是一個包含實際資料的量。即當定義一個值類型的變數時,C#會根據它所宣告的類型,以堆疊方式分配一塊大小相適應的儲存區域給這個變量,隨後對這個變數的讀或寫操作就直接在這塊記憶體         區域進行;

  ②引用類型:一個引用類型的變數不儲存它們所代表的實際數據,而是儲存實際數據的參考。
  參考類型分兩步驟建立:首先在堆疊上建立一個引用變量,然後在堆疊上建立物件本身,再把這個記憶體的句柄(也是記憶體的首位址)賦給參考變數;

 9、什麼是拆箱和裝箱

   裝箱→值型別轉換為參考型,拆箱→引用型別轉換為值型別。

10、裝箱和拆箱有什麼效能影響?怎麼解決呢?

  ①影響:都涉及到記憶體的分配和物件的創建,有較大的效能影響;

  ②解決:使用泛型

11、委託是什麼?事件是不是委託?

  ①委託:類似C或C++中的函數指針,允許將方法作為參數進行傳遞;(可以把一個方法代入另一個方法)

  ②事件是特殊的委託,事件內部是基於委託來實現的;

 12、構造器Constructor是否可以被繼承?是否可以被Override?

  Constructor不可以被繼承,因此不能被重寫(Overriding),但可以被重載(Overloading).

13、是否可以整合String類別?

  String類別是final類別所以不可以繼承string類別。

14、當一個執行緒進入一個物件的方法後,其他執行緒是否可以進入該方法?

  不可以,一個物件的方法只能由一個執行緒存取。

15、用最有效的方法算2乘以8等於幾?

  2

16、Error和Exception有是差別?

   Error表示恢復不是不可能,但是很困難,Exception表示一種實際或實作問題,它表示程式運作正常不可以發生的。

 17、UDP和TCP連接有和異同?

  ①TCP是傳輸控制協議,提供的是面向連接的,是可靠的,位元組流服務,TCP提供超時重撥,檢驗資料功能。

  ②UDP是用戶資料報協議,是一個簡單的面向資料報的傳輸協議,是不可靠的連接。

18、new關鍵字的用法

 ①new 運算子 用於建立物件和呼叫建構子。

   ②new 修飾符 用於隱藏繼承成員給基底類別成員。

   ③new 約束   用於在泛型宣告中約束可能用作型別參數的參數的型別。

 19、Using關鍵字的用法

  ①引用命名空間;

  ②為命名空間或類型建立別名;(using + 別名= 包含詳細命名空間資訊的特定的類型)

  ③釋放資源(關閉文件流);

 20、可訪問性等級有哪幾種

  ①pubic 存取不受限制。

  ②protected 存取僅限於包含類別或從包含類別派生的類型。

  ③internal 存取僅限於目前組件。

  ④protected internal 存取僅限於從包含類別衍生的目前組件或類型。

  ⑤private 存取僅限於包含類型。

21、 一列數的規則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少, 用遞歸演算法實作。

22、冒泡排序

 

 

以上是C# 一些面試題的實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
c#.net的持續相關性:查看當前用法c#.net的持續相關性:查看當前用法Apr 16, 2025 am 12:07 AM

C#.NET依然重要,因為它提供了強大的工具和庫,支持多種應用開發。 1)C#結合.NET框架,使開發高效便捷。 2)C#的類型安全和垃圾回收機制增強了其優勢。 3).NET提供跨平台運行環境和豐富的API,提升了開發靈活性。

從網絡到桌面:C#.NET的多功能性從網絡到桌面:C#.NET的多功能性Apr 15, 2025 am 12:07 AM

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C#.NET與未來:適應新技術C#.NET與未來:適應新技術Apr 14, 2025 am 12:06 AM

C#和.NET通過不斷的更新和優化,適應了新興技術的需求。 1)C#9.0和.NET5引入了記錄類型和性能優化。 2).NETCore增強了雲原生和容器化支持。 3)ASP.NETCore與現代Web技術集成。 4)ML.NET支持機器學習和人工智能。 5)異步編程和最佳實踐提升了性能。

c#.net適合您嗎?評估其適用性c#.net適合您嗎?評估其適用性Apr 13, 2025 am 12:03 AM

c#.netissutableforenterprise-levelapplications withemofrosoftecosystemdueToItsStrongTyping,richlibraries,androbustperraries,androbustperformance.however,itmaynotbeidealfoross-platement forment forment forment forvepentment offependment dovelopment toveloperment toveloperment whenrawspeedsportor whenrawspeedseedpolitical politionalitable,

.NET中的C#代碼:探索編程過程.NET中的C#代碼:探索編程過程Apr 12, 2025 am 12:02 AM

C#在.NET中的編程過程包括以下步驟:1)編寫C#代碼,2)編譯為中間語言(IL),3)由.NET運行時(CLR)執行。 C#在.NET中的優勢在於其現代化語法、強大的類型系統和與.NET框架的緊密集成,適用於從桌面應用到Web服務的各種開發場景。

C#.NET:探索核心概念和編程基礎知識C#.NET:探索核心概念和編程基礎知識Apr 10, 2025 am 09:32 AM

C#是一種現代、面向對象的編程語言,由微軟開發並作為.NET框架的一部分。 1.C#支持面向對象編程(OOP),包括封裝、繼承和多態。 2.C#中的異步編程通過async和await關鍵字實現,提高應用的響應性。 3.使用LINQ可以簡潔地處理數據集合。 4.常見錯誤包括空引用異常和索引超出範圍異常,調試技巧包括使用調試器和異常處理。 5.性能優化包括使用StringBuilder和避免不必要的裝箱和拆箱。

測試C#.NET應用程序:單元,集成和端到端測試測試C#.NET應用程序:單元,集成和端到端測試Apr 09, 2025 am 12:04 AM

C#.NET應用的測試策略包括單元測試、集成測試和端到端測試。 1.單元測試確保代碼的最小單元獨立工作,使用MSTest、NUnit或xUnit框架。 2.集成測試驗證多個單元組合的功能,常用模擬數據和外部服務。 3.端到端測試模擬用戶完整操作流程,通常使用Selenium進行自動化測試。

高級C#.NET教程:ACE您的下一次高級開發人員面試高級C#.NET教程:ACE您的下一次高級開發人員面試Apr 08, 2025 am 12:06 AM

C#高級開發者面試需要掌握異步編程、LINQ、.NET框架內部工作原理等核心知識。 1.異步編程通過async和await簡化操作,提升應用響應性。 2.LINQ以SQL風格操作數據,需注意性能。 3..NET框架的CLR管理內存,垃圾回收需謹慎使用。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境