陈龙餐饮 發表於 2020-9-21 14:37:00

C# 面试问答

<h2 id="1什么是-com">1.什么是 COM?</h2>
<p>COM 代表组件对象模型。<br>
COM 是微软技术之一。使用这项技术,我们可以开发窗口应用程序以及Web应用程序。<br>
在较早的 COM 中,VB 是用于实现 windows 应用程序的编程语言,ASP 用于实现 Web 应用程序。</p>
<h2 id="2com有什么缺点">2.COM有什么缺点?</h2>
<p>COM 的主要缺点是</p>
<ul>
<li>不完整的面向对象的编程意味着它不支持 OOP 的所有功能。</li>
<li>依赖于平台意味着 COM 应用程序只能在 Windows 操作系统上运行。</li>
</ul>
<h2 id="3net-代表什么">3.NET 代表什么?</h2>
<p>NET 代表网络启用技术。<br>
在 .NET 点 (.) 中是指面向对象,NET 是指互联网。<br>
因此,完整的 .NET 意味着通过面向对象,我们可以实现互联网应用程序。</p>
<h2 id="4什么是框架net-框架提供什么">4.什么是框架?.NET 框架提供什么?</h2>
<p>框架是软件。或者我们可以说,框架是许多小型技术的集合,集成在一起,以开发可在任何地方执行的应用程序。</p>
<p>.NET 框架提供两种功能,例如:</p>
<ul>
<li>BCL(基本类库)<br>
BCL基类库由 Microsoft 设计。没有 BCL,我们无法在 .NET 中编写任何代码,因此 BCL 也称为 .NET 程序构建基块。<br>
当我们将 .NET 框架安装到计算机中时,这些框架将安装到计算机中。<br>
BCL 的物理位置是 C\Windows\assembly<br>
BCL 包含预定义的类,这些类用于应用程序开发。</li>
<li>CLR(通用语言运行时)</li>
</ul>
<h2 id="解释-clr-及其执行过程">解释 CLR 及其执行过程。</h2>
<p>CLR 是 .NET 框架下的核心组件,该框架负责将 MSIL 代码转换为本机代码,然后执行。<br>
<img src="https://img2020.cnblogs.com/blog/1161656/202009/1161656-20200921142709782-162794250.png" alt="" loading="lazy"><br>
在 .NET 中,代码编译两次。</p>
<p>在第一步编译源代码由相应的语言编译器编译,中间代码生成称为 MSIL(微软中间语言)或 IL(中间语言代码)或托管代码。<br>
在第二步编译时,MSIL 将使用 CLR 转换为本机代码。<br>
始终第一步编译速度慢, 第二部编译是第一位的。</p>
<h2 id="什么是-jit">什么是 Jit?</h2>
<ul>
<li>JIT 代表"及时"。</li>
<li>JIT 是 CLR 的组件,负责将 MSIL 代码转换为本机代码。</li>
<li>此本机代码是操作系统直接可以理解的。<br>
解释不同类型的 .NET 框架。<br>
.net 框架有三种不同类型:</li>
<li>.NET 框架:这是仅在 Windows 操作系统上运行 .NET 应用程序所需的常规版本。</li>
<li>.NET Nono框架:如果我们想要在其他操作系统(如 Unix、Linux、MAC OS 等)上运行 .NET 应用程序,则需要这样做。</li>
<li>.NET Compact 框架:这在其他设备上(如移动电话和智能手机)运行 .NET 应用程序是必需的。<br>
注意:MSIL 仅依赖于 CPU,并且仅使用 .NET 框架在 Windows 操作系统上运行,因为 .NET 框架仅为 Windows 操作系统而设计。</li>
</ul>
<p>还有一家公司称为"NOVEL",它设计了单独的框架,称为"MONO 框架"。使用此框架,我们可以在不同的操作系统上运行 MSIL,如 Linux、UNIX、Mac、BSD、OSX 等。<br>
.NET 使用 .NET 框架依赖于平台,但使用 MONO 框架是独立的。</p>
<h2 id="什么不是net">什么不是.NET?</h2>
<ul>
<li>.NET 不是操作系统。</li>
<li>它不是应用程序或包。</li>
<li>.NET 不是数据库。</li>
<li>它不是 ERP 应用程序。</li>
<li>.NET 不是测试工具。</li>
<li>它不是编程语言。</li>
</ul>
<h2 id="究竟是什么net">究竟是什么.NET?</h2>
<p>.NET 是一个框架工具,支持许多编程语言和许多技术。</p>
<h2 id="什么是实时jit编译">什么是实时(JIT)编译?</h2>
<p>MSIL 是所有 .NET 语言编译到的语言。它们使用这种中间语言后,在运行时使用来自应用程序的资源时,将发生一个名为"实时编译"的进程。</p>
<h2 id="什么是元数据">什么是元数据?</h2>
<p>元数据以多语言形式描述代码中定义的每个类型和成员。元数据存储以下信息。</p>
<ul>
<li>程序集的说明。</li>
<li>标识(名称、版本、区域性、公钥)。</li>
<li>导出的类型</li>
<li>此程序集所依赖的其他程序集。</li>
<li>需要运行安全权限。</li>
</ul>
<h2 id="什么是程序集">什么是程序集?</h2>
<p>程序集是 .NET 框架应用程序的构建基块;它们构成了部署、版本控制、重用和激活范围和安全权限的基本单元。</p>
<h2 id="托管代码和非托管代码之间有什么区别">托管代码和非托管代码之间有什么区别?</h2>
<ul>
<li>托管代码/方法:<br>
+ 机器说明采用 MSIL 格式,位于装配体中将由 CLR 执行,具有以下优点<br>
+ 内存管理,以防止程序代码中的内存泄漏。<br>
+ 线程执行<br>
+ 代码安全验证<br>
+ 编译。</li>
<li>非托管代码/方法:<br>
+ 非托管代码是针对特定平台的说明。非托管代码将存在于任何格式中。<br>
+ COM/COM® 组件<br>
+ Win 32 Dlls/system DLLs<br>
由于这些代码采用本机操作系统格式,因此与 JIT 编译和执行托管代码相比,这些指令的执行速度更快。</li>
</ul>
<h2 id="什么是-c">什么是 C#?</h2>
<p>C# 是一种面向对象的类型安全和管理语言,由.Net编译,以生成 Microsoft 中间语言。</p>
<h2 id="exe-和-dll-有什么区别">EXE 和 DLL 有什么区别?</h2>
<p>EXE 是一个可执行文件,可以作为应用程序本身运行,而 DLL 通常由 EXE 或其他 DLL 使用,我们不能直接运行或执行 DLL。<br>
例如,在 .NET 编译控制台应用程序或 Windows 应用程序中,生成 EXE,而编译类库项目或ASP.NET Web 应用程序生成 DLL。在 .NET 框架中,EXE 和 DLL 都称为程序集。<br>
DLL 可以在应用程序中重用,而 exe 文件则永远不能在应用程序中重用。<br>
EXE 代表可执行文件,DLL 代表动态链接库</p>
<h2 id="ienumable-和-list有什么区别">IEnumable<t> 和 List<t>有什么区别?</t></t></h2>
<ul>
<li>IEnumable 是一个接口,而List是 IEnumable 的一个特定实现。列表是一个类。</li>
<li>FOR-EACH 循环是遍历可累积集合的唯一可能方法,而可以使用多种方式迭代列表。该列表也可以由 int 索引编制索引,元素可以添加到元素中删除,并在特定索引中插入项。</li>
<li>IEnumable不允许随机访问,而List允许使用积分索引进行随机访问。</li>
<li>一般来说,从性能的角度来看,通过IEnumable进行重复比通过列表进行重复要快得多。</li>
</ul>
<h2 id="为什么类是抽象数据类型">为什么类是抽象数据类型?</h2>
<p>类是抽象数据类型,因为它指定其中包含哪些数据成员和成员函数(方法),但不会提供有关如何实现这些函数的信息。这使得类抽象和类是用户定义的数据类型。所以,它是一个抽象数据类型</p><br><br>
来源:https://www.cnblogs.com/zh7791/p/13705434.html
頁: [1]
查看完整版本: C# 面试问答