C#通用常見面試題-精心整理

以下是優化后的版本,在原有內容基礎上補充了應用場景,其他結構保持不變:


上位機面試題解答(技術詳解+示例)


C#-IOC框架

1. 值類型和引用類型的本質區別

解釋
  • 值類型:存儲在棧中,直接保存數據值(如 int, struct)。
  • 引用類型:存儲在堆中,變量保存對象地址(如 class, string)。
對比表格
特性值類型引用類型
存儲位置棧(Stack)堆(Heap)
賦值行為復制數據本身復制對象地址
默認值0或false(根據類型)null
裝箱/拆箱支持(值類型轉為對象)不適用
應用場景
  • 值類型:適合存儲輕量級數據(如傳感器數值、坐標),避免頻繁堆內存分配。
  • 引用類型:管理復雜對象(如設備連接、數據庫上下文),支持多處共享引用。
示例
int temperature = 25; // 值類型(傳感器數據)
Device device = new Device(); // 引用類型(設備對象)

2. 抽象類和接口的區別

解釋
  • 抽象類:可包含方法實現、字段和構造函數,支持單繼承。
  • 接口:僅定義方法簽名,支持多繼承,無實現。
對比表格
特性抽象類接口
方法實現可有具體實現或抽象方法僅定義方法簽名(C# 8.0后支持默認實現)
繼承規則單繼承多繼承
構造函數支持不支持
適用場景共同實現邏輯(如 Animal 基類)行為契約(如 IPlayable 接口)
應用場景
  • 抽象類:物聯網設備驅動開發中,定義基礎通信邏輯(如 AbstractModbusDevice)。
  • 接口:定義跨平臺協議(如 ICommunicationProtocol),支持 Modbus, OPC UA 等多協議實現。
    可以包含抽象成員:
    抽象類可以包含抽象方法、抽象屬性等,這些成員沒有具體的實現,必須由派生類實現。
    可以包含非抽象成員:
    抽象類也可以包含普通的方法、屬性、字段等,這些成員可以直接在抽象類中實現。
示例
// 抽象類
public abstract class BaseDevice {protected void Connect() { /* 共享連接邏輯 */ }public abstract void ReadData(); 
}// 接口
public interface IProtocol {void SendCommand(string cmd);
}

3. 委托和事件的區別

解釋
  • 委托:封裝方法引用,支持多播。
  • 事件:委托的封裝,提供訪問控制(僅發布者可觸發)。
對比表格
特性委托事件
訪問控制無限制(可被任何代碼調用)通過 event 關鍵字保護
多播支持支持支持
適用場景一般方法調用事件驅動場景(如按鈕點擊)
應用場景
  • 委托:實現回調函數(如異步任務完成時的 TaskCompletionSource)。
  • 事件:設備狀態變化通知(如 Device.OnDataReceived)。
示例
public event EventHandler<DataReceivedEventArgs> OnDataReceived;
// 觸發事件
OnDataReceived?.Invoke(this, new DataReceivedEventArgs(buffer));

4. IOC依賴注入的注入方式

解釋
  • 構造函數注入:通過構造函數傳遞依賴。
  • 屬性/方法注入:通過屬性或方法設置依賴(較少使用)。
對比表格
方式構造函數注入屬性注入方法注入
推薦程度強烈推薦不推薦不推薦
可維護性高(顯式聲明依賴)低(隱藏依賴)
適用場景99%的場景避免使用避免使用
應用場景
  • 構造函數注入:云服務中注入數據庫上下文(如 MyService(IService service))。
  • 屬性注入:遺留代碼中快速集成第三方庫(需謹慎使用)。
示例
public class DeviceService {private readonly ICommunication _comm;public DeviceService(ICommunication comm) { // 顯式依賴_comm = comm;}
}

5. C#集合簡單介紹

解釋
  • List:動態數組,適合隨機訪問和遍歷。
  • Dictionary<TKey,TValue>:哈希表,快速查找鍵值對。
  • LinkedList:鏈表結構,插入刪除高效。
對比表格
集合類型增刪效率查找效率線程安全適用場景
List<T>低(O(n))高(O(1))頻繁遍歷,少量增刪
Dictionary中(O(1))高(O(1))頻繁按鍵查找(如設備ID映射)
LinkedList<T>高(O(1))低(O(n))頻繁插入/刪除(如隊列)
應用場景
  • List:存儲設備列表(如 List<Device>)。
  • Dictionary:設備ID到實例的映射(如 Dictionary<string, Device>)。
示例
var devices = new List<Device>(); // 設備列表
var deviceMap = new Dictionary<string, Device>(); // 快速查找

6. C#垃圾回收機制&#x

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/77809.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77809.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/77809.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

K8S節點出現Evicted狀態“被驅逐”

在Kubernetes集群中&#xff0c;Pod狀態為“被驅逐&#xff08;evicted&#xff09;”表示Pod無法在當前節點上繼續運行&#xff0c;已被集群從節點上移除。 問題分析&#xff1a; 節點磁盤空間不足 &#xff0c;使用df -h查看磁盤使用情況 可以看到根目錄 / 已100%滿&#x…

[密碼學基礎]國密算法深度解析:中國密碼標準的自主化之路

國密算法深度解析&#xff1a;中國密碼標準的自主化之路 國密算法&#xff08;SM系列算法&#xff09;是中國自主研發的密碼技術標準體系&#xff0c;旨在打破國際密碼技術壟斷&#xff0c;保障國家信息安全。本文將從技術原理、應用場景和生態發展三個維度&#xff0c;全面解…

Linux 網絡基礎(三) TCP/IP協議

一、TCP 與 IP 的關系 IP 層的核心作用是定位主機&#xff0c;具有將數據從主機 A 發送到主機 B 的能力&#xff0c;但是能力并不能保證一定能夠做到&#xff0c;所以這時就需要 TCP 起作用了&#xff0c;TCP 可以通過超時重傳、擁塞控制等策略來保證數據能夠發送到 B 主機。 所…

基于 Vue 的Tiptap 富文本編輯器使用指南

目錄 &#x1f9f0; 技術棧 &#x1f4e6; 所需依賴 &#x1f4c1; 文件結構 &#x1f9f1; 編輯器組件實現&#xff08;components/Editor.vue&#xff09; ? 常用操作指令 &#x1f9e0; 小貼士 &#x1f9e9; Tiptap 擴展功能使用說明&#xff08;含快捷鍵與命令&am…

統計圖表ECharts

統計某個時間段&#xff0c;觀看人數 ①、數據表 ②、業務代碼 RestController RequstMapping(value"/admin/vod/videoVisitor") CrossOrigin public class VideoVisitorController{Autowriedprivate VideoVisitorService videoVisitorService;//課程統計的接口…

ubuntu 安裝 redis server

ubuntu 安裝 redis server sudo apt update sudo apt install redis-server The following NEW packages will be installed:libhiredis0.14 libjemalloc2 liblua5.1-0 lua-bitop lua-cjson redis-server redis-toolssudo systemctl start redis-server sudo systemctl ena…

【白雪講堂】[特殊字符]內容戰略地圖|GEO優化框架下的內容全景布局

&#x1f4cd;內容戰略地圖&#xff5c;GEO優化框架下的內容全景布局 1?? 頂層目標&#xff1a;GEO優化戰略 目標關鍵詞&#xff1a; 被AI理解&#xff08;AEO&#xff09; 被AI優先推薦&#xff08;GEO&#xff09; 在關鍵場景中被AI復讀引用 2?? 三大引擎邏輯&#x…

NVIDIA 自動駕駛技術見解

前言 參與 NVIDIA自動駕駛開發者實驗室 活動&#xff0c;以及解讀了 NVIDIA 安全報告 自動駕駛 白皮書&#xff0c;本文是我的一些思考和見解。自動駕駛技術的目標是為了改善道理安全、減少交通堵塞&#xff0c;重塑更安全、高效、包容的交通生態。在這一領域&#xff0c;NVI…

OpenCV day6

函數內容接上文&#xff1a;OpenCV day4-CSDN博客 , OpenCV day5-CSDN博客 目錄 平滑&#xff08;模糊&#xff09; 25.cv2.blur()&#xff1a; 26.cv2.boxFilter(): 27.cv2.GaussianBlur()&#xff1a; 28.cv2.medianBlur(): 29.cv2.bilateralFilter()&#xff1a; 銳…

Function calling, 模態上下文協議(MCP),多步能力協議(MCP) 和 A2A的區別

背景闡述 本文大部分內容都是基于openAI 的 chatGPT自動生成。作者進行了一些細微的調整。 LLM 帶來了很多思維的活躍&#xff0c;基于LLM&#xff0c;產生了很多應用&#xff0c;很多應用也激活了LLM的新的功能。 Function calling&#xff0c;MCP&#xff08;Modal Contex…

火山RTC 5 轉推CDN 布局合成規則

實時音視頻房間&#xff0c;轉推CDN&#xff0c;文檔&#xff1a; 轉推直播--實時音視頻-火山引擎 一、轉推CDN 0、前提 * 在調用該接口前&#xff0c;你需要在[控制臺](https://console.volcengine.com/rtc/workplaceRTC)開啟轉推直播功能。<br> * 調…

力扣面試150題--插入區間和用最少數量的箭引爆氣球

Day 28 題目描述 思路 初次思路&#xff1a;借鑒一下昨天題解的思路&#xff0c;將插入的區間與區間數組作比較&#xff0c;插入到升序的數組中&#xff0c;其他的和&#xff08;合并區間&#xff09;做法一樣。 注意需要特殊處理一下情況&#xff0c;插入區間比數組中最后一…

【Java面試筆記:基礎】4.強引用、軟引用、弱引用、幻象引用有什么區別?

1. 引用類型及其特點 強引用(Strong Reference): 定義:最常見的引用類型,通過new關鍵字直接創建。回收條件:只要強引用存在,對象不會被GC回收。示例:Object obj = new Object(); // 強引用特點: 強引用是導致內存泄漏的常見原因(如未及時置為null)。手動斷開引用:…

ycsb性能測試的優缺點

YCSB&#xff08;Yahoo Cloud Serving Benchmark&#xff09;是一個開源的性能測試框架&#xff0c;用于評估分布式系統的讀寫性能。它具有以下優點和缺點&#xff1a; 優點&#xff1a; 簡單易用&#xff1a;YCSB提供了簡單的API和配置文件&#xff0c;使得性能測試非常容易…

基于SpringBoot的校園賽事直播管理系統-項目分享

基于SpringBoot的校園賽事直播管理系統-項目分享 項目介紹項目摘要管理員功能圖用戶功能圖項目預覽首頁總覽個人中心禮物管理主播管理 最后 項目介紹 使用者&#xff1a;管理員、用戶 開發技術&#xff1a;MySQLJavaSpringBootVue 項目摘要 隨著互聯網和移動技術的持續進步&…

Nginx?中間件的解析

目錄 一、Nginx的核心架構解析 二、Nginx的典型應用場景 三、Nginx的配置優化實踐 四、Nginx的常見缺陷與漏洞 一、Nginx的核心架構解析 ??事件驅動與非阻塞IO模型?? Nginx采用基于epoll/kq等系統調用的事件驅動機制&#xff0c;通過異步非阻塞方式處理請求&#xff0c;…

杭州小紅書代運營公司-品融電商:全域增長策略的實踐者

杭州小紅書代運營公司-品融電商&#xff1a;全域增長策略的實踐者 在品牌競爭日趨激烈的電商領域&#xff0c;杭州品融電商作為一家專注于品牌化全域運營的服務商&#xff0c;憑借其“效品合一”方法論與行業領先的小紅書代運營能力&#xff0c;已成為眾多品牌實現市場突圍的重…

【映客直播-注冊/登錄安全分析報告】

前言 由于網站注冊入口容易被黑客攻擊&#xff0c;存在如下安全問題&#xff1a; 暴力破解密碼&#xff0c;造成用戶信息泄露短信盜刷的安全問題&#xff0c;影響業務及導致用戶投訴帶來經濟損失&#xff0c;尤其是后付費客戶&#xff0c;風險巨大&#xff0c;造成虧損無底洞…

Android audio_policy_configuration.xml加載流程

目錄 一、audio_policy_configuration.xml文件被加載流程 1、AudioPolicyService 創建階段 2、createAudioPolicyManager 實現 3、AudioPolicyManager 構造 4、配置文件解析 loadConfig 5、核心解析邏輯 PolicySerializer::deserialize 二、AudioPolicyConfig類解析 1、…

使用 Docker 安裝 Elastic Stack 并重置本地密碼

Elastic Stack&#xff08;也被稱為 ELK Stack&#xff09;是一個非常強大的工具套件&#xff0c;用于實時搜索、分析和可視化大量數據。Elastic Stack 包括 Elasticsearch、Logstash、Kibana 等組件。本文將展示如何使用 Docker 安裝 Elasticsearch 并重置本地用戶密碼。 ###…