C# 面試問答


1.什么是 COM?

COM 代表組件對象模型。
COM 是微軟技術之一。使用這項技術,我們可以開發窗口應用程序以及Web應用程序。
在較早的 COM 中,VB 是用於實現 windows 應用程序的編程語言,ASP 用於實現 Web 應用程序。

2.COM有什么缺點?

COM 的主要缺點是

  • 不完整的面向對象的編程意味着它不支持 OOP 的所有功能。
  • 依賴於平台意味着 COM 應用程序只能在 Windows 操作系統上運行。

3.NET 代表什么?

NET 代表網絡啟用技術。
在 .NET 點 (.) 中是指面向對象,NET 是指互聯網。
因此,完整的 .NET 意味着通過面向對象,我們可以實現互聯網應用程序。

4.什么是框架?.NET 框架提供什么?

框架是軟件。或者我們可以說,框架是許多小型技術的集合,集成在一起,以開發可在任何地方執行的應用程序。

.NET 框架提供兩種功能,例如:

  • BCL(基本類庫)
    BCL基類庫由 Microsoft 設計。沒有 BCL,我們無法在 .NET 中編寫任何代碼,因此 BCL 也稱為 .NET 程序構建基塊。
    當我們將 .NET 框架安裝到計算機中時,這些框架將安裝到計算機中。
    BCL 的物理位置是 C\Windows\assembly
    BCL 包含預定義的類,這些類用於應用程序開發。
  • CLR(通用語言運行時)

解釋 CLR 及其執行過程。

CLR 是 .NET 框架下的核心組件,該框架負責將 MSIL 代碼轉換為本機代碼,然后執行。

在 .NET 中,代碼編譯兩次。

在第一步編譯源代碼由相應的語言編譯器編譯,中間代碼生成稱為 MSIL(微軟中間語言)或 IL(中間語言代碼)或托管代碼。
在第二步編譯時,MSIL 將使用 CLR 轉換為本機代碼。
始終第一步編譯速度慢, 第二部編譯是第一位的。

什么是 Jit?

  • JIT 代表"及時"。
  • JIT 是 CLR 的組件,負責將 MSIL 代碼轉換為本機代碼。
  • 此本機代碼是操作系統直接可以理解的。
    解釋不同類型的 .NET 框架。
    .net 框架有三種不同類型:
  • .NET 框架:這是僅在 Windows 操作系統上運行 .NET 應用程序所需的常規版本。
  • .NET Nono框架:如果我們想要在其他操作系統(如 Unix、Linux、MAC OS 等)上運行 .NET 應用程序,則需要這樣做。
  • .NET Compact 框架:這在其他設備上(如移動電話和智能手機)運行 .NET 應用程序是必需的。
    注意:MSIL 僅依賴於 CPU,並且僅使用 .NET 框架在 Windows 操作系統上運行,因為 .NET 框架僅為 Windows 操作系統而設計。

還有一家公司稱為"NOVEL",它設計了單獨的框架,稱為"MONO 框架"。使用此框架,我們可以在不同的操作系統上運行 MSIL,如 Linux、UNIX、Mac、BSD、OSX 等。
.NET 使用 .NET 框架依賴於平台,但使用 MONO 框架是獨立的。

什么不是.NET?

  • .NET 不是操作系統。
  • 它不是應用程序或包。
  • .NET 不是數據庫。
  • 它不是 ERP 應用程序。
  • .NET 不是測試工具。
  • 它不是編程語言。

究竟是什么.NET?

.NET 是一個框架工具,支持許多編程語言和許多技術。

什么是實時(JIT)編譯?

MSIL 是所有 .NET 語言編譯到的語言。它們使用這種中間語言后,在運行時使用來自應用程序的資源時,將發生一個名為"實時編譯"的進程。

什么是元數據?

元數據以多語言形式描述代碼中定義的每個類型和成員。元數據存儲以下信息。

  • 程序集的說明。
  • 標識(名稱、版本、區域性、公鑰)。
  • 導出的類型
  • 此程序集所依賴的其他程序集。
  • 需要運行安全權限。

什么是程序集?

程序集是 .NET 框架應用程序的構建基塊;它們構成了部署、版本控制、重用和激活范圍和安全權限的基本單元。

托管代碼和非托管代碼之間有什么區別?

  • 托管代碼/方法:
    + 機器說明采用 MSIL 格式,位於裝配體中將由 CLR 執行,具有以下優點
    + 內存管理,以防止程序代碼中的內存泄漏。
    + 線程執行
    + 代碼安全驗證
    + 編譯。
  • 非托管代碼/方法:
    + 非托管代碼是針對特定平台的說明。非托管代碼將存在於任何格式中。
    + COM/COM® 組件
    + Win 32 Dlls/system DLLs
    由於這些代碼采用本機操作系統格式,因此與 JIT 編譯和執行托管代碼相比,這些指令的執行速度更快。

什么是 C#?

C# 是一種面向對象的類型安全和管理語言,由.Net編譯,以生成 Microsoft 中間語言。

EXE 和 DLL 有什么區別?

EXE 是一個可執行文件,可以作為應用程序本身運行,而 DLL 通常由 EXE 或其他 DLL 使用,我們不能直接運行或執行 DLL。
例如,在 .NET 編譯控制台應用程序或 Windows 應用程序中,生成 EXE,而編譯類庫項目或ASP.NET Web 應用程序生成 DLL。在 .NET 框架中,EXE 和 DLL 都稱為程序集。
DLL 可以在應用程序中重用,而 exe 文件則永遠不能在應用程序中重用。
EXE 代表可執行文件,DLL 代表動態鏈接庫

IEnumable 和 List 有什么區別?

  • IEnumable 是一個接口,而List是 IEnumable 的一個特定實現。列表是一個類。
  • FOR-EACH 循環是遍歷可累積集合的唯一可能方法,而可以使用多種方式迭代列表。該列表也可以由 int 索引編制索引,元素可以添加到元素中刪除,並在特定索引中插入項。
  • IEnumable不允許隨機訪問,而List允許使用積分索引進行隨機訪問。
  • 一般來說,從性能的角度來看,通過IEnumable進行重復比通過列表進行重復要快得多。

為什么類是抽象數據類型?

類是抽象數據類型,因為它指定其中包含哪些數據成員和成員函數(方法),但不會提供有關如何實現這些函數的信息。這使得類抽象和類是用戶定義的數據類型。所以,它是一個抽象數據類型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM