首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

C# 程式設計師面試必備:30 道核心基礎題與精準解析

     編輯:VC 教學

語法與語言特性

屬性 set 存取子的隱含參數名稱?
value,型別與屬性宣告一致。
如何實作繼承?
類別名後加冒號再接基類名:class Child : Base。
C# 支援多重繼承嗎?
**類別不支援**,介面支援多重繼承。類別實作介面稱為「實作」而非繼承。
protected 成員存取範圍?
衍生類別(含間接衍生)內部可存取。
私有成員會被繼承嗎?
會繼承,但衍生類別**無法存取**,表現如同未繼承。
protected internal 意義?
同一組件 (Assembly) 內等同 public;跨組件時等同 protected。即「protected 範圍 ∪ internal 範圍」。
自訂有參數建構函數後,預設無參數建構函數還在嗎?
**不在**。需手寫 public MyClass() {} 保留無參數建構函數。
所有物件的共同基類?
System.Object。

多型與方法覆寫

多載 vs 覆寫 差異?
多載:同名方法、不同參數簽章(型別/個數/順序)。覆寫:衍生類別改寫基類 virtual 方法行為,簽章必須一致。
virtual 意義?
允許衍生類別以 override 覆寫該方法。
能將非靜態方法覆寫為靜態嗎?
**不能**。覆寫方法簽章必須完全一致,只能將 virtual 改為 override。
能覆寫私有虛方法嗎?
**不能**。衍生類別甚至無法看見基類私有方法。
如何禁止類別被繼承?
加 sealed 關鍵字:public sealed class FinalClass。
允許繼承類別但禁止覆寫某方法?
類別標記 public,該方法標記 sealed(需配合 override 使用)。

抽象類別與介面

什麼是抽象類別?
不可實例化的類別,通常包含抽象方法(無實作),衍生類別必須實作所有抽象方法才能實例化。
何時必須宣告為抽象類別?
包含抽象方法,或未完整實作基類抽象方法時。
介面定義?
僅包含 public abstract 方法的契約,所有方法必須由實作類別實現。
為何介面方法不可指定存取修飾詞?
介面定義物件溝通契約,預設即為 public,private/protected 無意義。
可實作多個介面嗎?
**可以**。
多介面含同名方法怎麼辦?
由實作類別決定如何實作,編譯不報錯,但需謹慎設計避免語意衝突。
介面 vs 抽象類別 差異?
介面:全抽象、不可指定修飾詞、支援多重實作。抽象類別:可含實作、可指定修飾詞、單一繼承。

其他核心觀念

如何區別多載方法?
參數型別不同、個數不同、順序不同。
const vs readonly?
const:編譯期常數,可用於區域變數。readonly:執行期唯讀欄位 (initonly),只能用於類別欄位。
String vs StringBuilder?
String 不可變,每次操作產生新物件。StringBuilder 可變緩衝區,提供高效修改方法。

面試加分建議

  • 理解 IDisposable 模式與 using 區塊的關係。
  • 說出委派、事件、Lambda 運算式的演進脈絡。
  • 熟悉 LINQ 延遲執行與 IQueryable vs IEnumerable 差異。
  • 掌握 async/await 狀態機原理與死鎖避免技巧。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved