引用:https://www.cnblogs.com/zh7791/p/13705434.html

 

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进行重复比通过列表进行重复要快得多。

为什么类是抽象数据类型?

类是抽象数据类型,因为它指定其中包含哪些数据成员和成员函数(方法),但不会提供有关如何实现这些函数的信息。这使得类抽象和类是用户定义的数据类型。所以,它是一个抽象数据类型

C# 面试问答的更多相关文章

  1. JAVA多线程和并发基础面试问答(转载)

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  2. [转] JAVA多线程和并发基础面试问答

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  3. JAVA多线程和并发基础面试问答

    转载: JAVA多线程和并发基础面试问答 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对 ...

  4. 【多线程】JAVA多线程和并发基础面试问答(转载)

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  5. 28个MongoDB NoSQL数据库的面试问答

    MongoDB是目前最好的面向文档的免费开源NoSQL数据库.如果你正准备参加MongoDB NoSQL数据库的技术面试,你最好看看下面的MongoDB NoSQL面试问答.这些MongoDB NoS ...

  6. .NET面试问答集锦

    程序员级别鉴定书(.NET面试问答集锦) 提供避免元素命名冲突的方法 DOM适合的使用场景是什么?是否有尺寸限制? DOM是一种与浏览器,平台,语言无关的接口,使你可以访问页面其他的标准组件. DOM ...

  7. C语言面试问答5

    12个滑稽的C语言面试问答——<12个有趣的C语言问答>评析(5) 前文链接:http://www.cnblogs.com/pmer/archive/2013/09/17/3327262. ...

  8. C语言面试问答(3)

    12个滑稽的C语言面试问答——<12个有趣的C语言问答>评析(3) 前文链接:http://www.cnblogs.com/pmer/p/3322429.html 5,atexit wit ...

  9. (转)JAVA多线程和并发基础面试问答

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  10. .net面试问答

    转载自:https://www.cnblogs.com/dingfangbo/p/5768991.html .net面试问答(大汇总)   原文://http://blog.csdn.net/weny ...

随机推荐

  1. JVM运行时参数

    JVM运行时参数 JVM运行时参数是用于配置和调整Java虚拟机的行为和性能的参数.这些参数可以在启动Java应用程序时通过命令行或配置文件进行设置,合理配置参数可以使JVM虚拟机的达到更好的性能,降 ...

  2. 用容器部署Nexus 3作为Nuget和Docker的仓库

    1.准备docker-compose的配置文件 version: '3' services: nexus: image: 'sonatype/nexus3:3.42.0' container_name ...

  3. 【Azure Logic App】消费型逻辑应用在消费Service Bus时遇见消息并发速度慢,消息积压

    问题描述 消费型逻辑应用(Consumption Logic App)使用触发器模式消费 Azure Service Bus的消息,当Service Bus中存在大量消息等待消费时,Logic App ...

  4. 【Azure 存储服务】Azure Blob下面是否可以创建子文件夹

    问题描述 如何在Azure Storage Account(存储账户) 门户上为 Container 创建子文件夹? 问题解决 经验证,没有办法在门户上直接创建文件夹,不过可以使用Azure Stor ...

  5. [VueJsDev] 快速入门 - 开发前小知识

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html 开发前小知识 ::: details 目录 目录 开发前小知 ...

  6. vue table 里面 slot 的模板复用 slot-scope template v-for

    vue table 里面 slot 的模板复用 slot-scope template v-for 需求 经常在table里面要有自定义列,但是会有相同的自定义列,这个时候又不想写很多一样的templ ...

  7. vue-helper 组件 跳转 | Vue Jump to Tag 好用,需自己设定快捷键 | Path Intellisense

    vue-helper 组件 跳转 组件名称 除首字母大写,其他不能有大写字母,否则不能跳转 比如 mycomponent 这个名字可以 Mycomponent 这个名字可以 myComponent 这 ...

  8. GitLab (v16.x) 简述及安装部署

    GitLab 介绍 GitLab 的历史 GitLab 最初是一个完全免费的开源软件,根据 MIT 许可证分发.2013 年 7 月,它被分为两个不同的版本 - GitLab CE(社区版)和 Git ...

  9. [转] vscode C/C++ 插件预定义环境变量(linux)

    原文 假设: 你当前编辑的文件是: /home/your-username/your-project/folder/file.ext /home/your-username/your-project ...

  10. 快速上手系列:HTML

    一 HTML 基本元素 基本结构 <html> <head> <meta http-equiv="Content-Type" content=&quo ...