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

C# 基礎概念 25 問完整指南:從靜態成員到反射的核心知識體系

     編輯:關於C語言

25 題完整列表與核心答案摘要

  1. 靜態 vs 非靜態成員:靜態屬於類別,實例屬於物件;靜態方法不可存取非靜態成員
  2. const vs static readonly:編譯期內嵌 vs 執行期讀取;跨組件更新行為不同
  3. extern:宣告外部實作(如 DllImport、MethodImplOptions.InternalCall)
  4. abstract:抽象類別/成員,強制衍生實作,不可與 static/virtual 共存
  5. internal:組件內可見,跨組件不可見;搭配 InternalsVisibleTo 友元組件
  6. sealed:密封類別禁止繼承、密封成員禁止覆寫
  7. override vs overload:重寫(多型) vs 多載(同名不同參數)
  8. 索引子:帶參數屬性,參數型別不限 int,支援多載
  9. new 修飾詞:隱藏基底成員,非多型,編譯器預設警告
  10. this:實例參考,建構函式鏈結、索引子、流式介面、結構體語意不同
  11. abstract override:抽象覆寫基底虛擬方法,保留多型槽位
  12. 密封類別虛擬方法:可繼承基底虛擬,不可宣告新虛擬
  13. 屬性存取器:get/set 封裝欄位,可異存取修飾詞,不一定對應欄位
  14. abstract + virtual/override:abstract 不可與 virtual 共存,可與 override 共存(抽象覆寫)
  15. 介面成員:方法/屬性/事件/索引子;無欄位/建構函式/靜態(C#8前)
  16. 類別 vs 結構體:參考/值型別、堆積/堆疊、繼承/不可繼承、指派語意
  17. 介面多重繼承問題:同名成員衝突→顯式實作解決;菱形繼承無問題(無實作)
  18. 抽象類別 vs 介面:共用實作/狀態用抽象類,契約/多重實作用介面
  19. 別名指示符using Alias = Type; 解決命名衝突、簡化泛型名稱
  20. IDisposable 模式:Dispose/Finalizer/GC.SuppressFinalize,SafeHandle 現代替代
  21. P/Invoke:受控呼叫非受控,轉換開銷大,批次化減少呼叫
  22. StringBuilder vs String:可變緩衝區 vs 不變字串,大量拼接必用 SB
  23. implicit vs explicit:隱式安全轉換 vs 顯式可能遺失資料轉換
  24. params:可變參數陣列,最後一個參數,編譯器產生 newarr
  25. 反射:執行期檢查/操作中繼資料,動態實例化/呼叫,插件/ORM/DI 基石

第 1 題詳細解析:靜態 vs 非靜態


using System;

class Demo {
    public static string StaticField = "Class";
    public string InstanceField = "Object";
}

class Program {
    static void Main() {
        Console.WriteLine($"Static: {Demo.StaticField}"); // 類別存取
        var o1 = new Demo { InstanceField = "Obj1" };
        var o2 = new Demo { InstanceField = "Obj2" };
        Console.WriteLine($"o1: {o1.InstanceField}"); // 物件存取
        Console.WriteLine($"o2: {o2.InstanceField}");
        Console.ReadKey();
    }
}

學習建議

  • 逐題動手寫對應範例程式,觀察輸出與 IL
  • 重點掌握:記憶體模型、多型機制、版本相容、資源管理
  • 面試高頻:2, 6, 7, 10, 15, 16, 20, 22, 25
  • 進階延伸:readonly struct、ref struct、Span<T>、Source Generators

原文參考

本系列源自博客園「C#基礎概念二十五問」專欄,經整理補充現代 .NET 最佳實踐。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved