50 个 VB.Net 面试问题及答案(2024 年)
以下是 Visual Basic .NET 面试问题和答案,可帮助新手和经验丰富的 VB.NET 开发人员候选人获得他们梦想的工作。
1)什么是元数据?
元数据被称为“关于数据内容的数据”,可以在图书馆目录中找到。实际上,它用于书籍的背面,以查看必要的主题。
2)VB和VB.Net有什么区别?
以下是VB和VB.Net之间的区别:
VB |
VB.Net |
依赖于平台 | 平台无关 |
VB 向后兼容 | VB.Net 不向后兼容 |
解读 | 编译器语言 |
通过“On Error…..Goto”进行异常处理 | 通过“Try….Catch”处理异常 |
无法开发多线程应用程序 | 可以开发多线程应用程序 |
3)C#和VB.Net有什么区别?
下表给出了 C# 和 VB.Net 之间的区别:
VB.Net | C# |
接受可选参数 | 不接受可选参数 |
不区分大小写 | 区分大小写 |
没有使用任何方法来释放非托管资源 | 'Using' 用于释放非托管资源 |
支持结构化和非结构化错误处理 | 非结构化错误处理 |
4)什么是命名空间?
命名空间是一种表示 .NET 语言中存在的类、结构和接口的有组织的方式。命名空间是类库的层次结构索引,可用于所有 .NET 语言。
5)哪个命名空间用于访问数据?
System.Data 命名空间用于访问和管理所需数据源的数据。此命名空间仅处理指定数据库中的数据。
6)什么是JIT?
JIT 被称为即时编译器,用作运行时执行环境的一部分。JIT 有三种类型,它们是:
- JIT 之前 – 在部署应用程序时进行编译
- 经济准时生产 – 在运行时编译调用的方法
- 正常 JIT – 在运行时编译被调用的方法,并且在被调用时第一次被编译
7)什么是组件及其用途?
程序集是 .NET 应用程序的元素之一,它被称为所有 .NET 应用程序的主要单元。此程序集可以是 DLL 或可执行文件。
8).NET 程序集中的强名称是什么?
强名称是.Net的一个重要特性,用于唯一标识共享程序集。强名称解决了创建具有相同名称的不同对象的问题,并且可以借助Sn.exe进行分配。
9) 组装有哪些不同类型?
组装有两种类型:
- 私人的 - 私有程序集通常由单个应用程序使用,并且存储在应用程序的目录中。
- 上市 - 公共程序集或共享程序集存储在全局程序集缓存 (GAC) 中,可由许多应用程序共享
10)命名空间和程序集有什么区别?
程序集是所有单元的物理分组,命名空间是类的逻辑分组。命名空间可以有多个程序集。
11).Net Framework 中的 INTERNAL 关键字是什么?
INTERNAL 关键字是访问说明符之一,在给定程序集(即 DLL 文件中)中可见。这形成了一个二进制组件,并且在整个程序集中都可见。
12)什么是 Option Strict 和 Option Explicit?
.Net 通常允许任何数据类型的隐式转换。为了避免数据类型转换期间的数据丢失,使用了 Option Strict 关键字,并确保编译时通知这些类型的转换。
Option Explicit 是文件中使用的关键字,用于使用诸如 Dim、Private、Public 或 Protected 之类的声明关键字显式声明所有变量。如果未声明的变量名仍然存在,则编译时会发生错误。
13)New关键字有什么用?
New 关键字与构造函数一起使用,在构造函数中它可以用作修饰符或运算符。当它用作修饰符时,它会隐藏继承的成员,使其不受基类成员的影响。当它用作运算符时,它会创建一个对象来调用构造函数。
Dim frm As New Form1 frm.show()
14)什么是ReDim关键字及其用途?
Redim 关键字专门用于数组,用于更改数组一个或多个维度的大小 排列 已经声明。Redim 可以在需要时释放或向数组添加元素。
Dim intArray(7, 7) As Integer ReDim Preserve intArray(7, 8) ReDim intArray(7, 7)
15)VB.Net 中的锯齿数组是什么?
交错数组不过是数组的数组。数组中的每个条目都是另一个可以容纳任意数量项目的数组。
16)什么是 Manifest?
Manifest 是一个文本文件,用于存储 .NET 程序集的元数据信息。Manifest 的文件类型可以保存为 PE 类型。程序集名称、版本、文化和密钥令牌可以保存为 Manifest。
17) Dispose 和 Finalize() 之间有哪些区别?
Finalize 方法由垃圾收集器调用,它帮助我们释放非托管资源。还有一些其他资源,如窗口句柄、数据库连接,由 iDisposable 接口处理。
Dispose 方法由 IDisposable 接口处理,用于明确释放未使用的资源。即使对象的其他引用仍然存在,也可以调用 Dsipose。
18)什么是垃圾收集?
垃圾收集又称为自动内存管理,用于自动回收动态分配的内存。垃圾收集由垃圾收集器执行,如果确定内存将不再使用,它将回收内存。
19)垃圾收集器中有哪些代类型?
垃圾收集器有三种类型的代。
第 0 代 – 这标识一个从未被标记为收集的新创建的对象。
第 1 代 – 这标识了一个已被标记为收集但未被删除的对象。
第 2 代 – 这标识了经过垃圾收集器多次扫描后仍存活下来的对象。
20)Option Explanation 有什么用?
当Option Explicit设置为ON时,必须强制声明变量,设置为OFF时,变量无需声明即可使用。
21) System.String 和 System.StringBuilder 类有什么区别?
System.string 类是不可更新的,它将创建新的字符串对象而不是更新该对象。但是 String.Stringbuilder 类可以在同一个字符串对象中进行更新。因此,对字符串生成器的操作比字符串类更快、更高效。
22)int 和 int32 有什么区别?
Int32 代表 32 位有符号整数,而 int 不是 VB.Net 中使用的关键字。
23)什么是哈希表?
Hashtable 设置为具有键和值对的项目。键称为索引,可以通过搜索键来快速搜索值。
24)什么是嵌套类?
可在另一个类的范围内声明的类。这些类被视为在封闭类的范围内,并且可在该类或范围内使用。
25)什么是枚举器?
枚举器或枚举是一种值类型,其中有一组常量被赋予列表集。当需要定义多个数字时,使用枚举。
26)什么是委托?
委托被定义为可以引用方法的对象。每当委托被分配给方法时,它的行为与该方法完全相同。
示例:
public delegate int performaddition(int z, int b);
27)什么是全球化?
全球化就是让应用程序国际化,并将应用程序本地化为其他语言或文化。文化就是语言(英语)和地点(如美国或英国)的组合。
28)Dataset 和 Datareader 有什么区别?
数据读取器 | 数据集 |
Datareader 对数据具有只读访问权限,并且设置为只进。 | 数据集可以保存来自同一数据源的多个表。它甚至存储表之间的关系。 |
Datareader 无法保留内容,因为它是只读的 | 数据集可以持久保存内容 |
Datareader 连接架构 | 数据集断开连接的架构 |
29)值类型和引用类型有什么区别?
值类型直接存储数据,并分配到堆栈。引用类型存储对值的内存地址的引用,并分配到堆。
30)VB.Net 中的 TRACE 是什么?
TRACE 允许用户详细查看代码的执行情况。这告诉用户代码是如何工作的。
31)什么是身份验证和授权?
身份验证是从用户处获取凭证并验证用户身份的过程。授权是授予对经过身份验证的资源的访问权限的过程。身份验证导致授权。
32)身份验证有哪些类型?
身份验证有三种类型,分别是 -
- Windows身份验证
- 表单验证
- Passport身份验证
33)什么是全局程序集缓存(GAC)?
GAC 用于共享 .NET 程序集所在的位置。它用于以下标准:
- 如果.Net 程序集有特殊的安全要求
- 如果 .Net 应用程序必须与其他应用程序共享
34)什么是 CLR?
CLR 是通用语言运行时的缩写,它是 .NET 框架的核心。运行时负责处理程序的代码执行。CLR 负责以下工作:
- 垃圾收集
- 代码验证
- 代码访问安全
- IL(中级语言)
35)什么是 CTS?
CTS 是通用类型系统,用于在语言之间顺利通信。例如,VB 具有 Integer 数据类型,而 C++ 具有 long 数据类型,这些数据类型不兼容。
为了兼容,CTS可以作为两种语言之间的接口。
36)什么是 CLS?
通用语言规范是 CTS 的一个子集,用于将所有语言统一到一个框架中。这扩展到将所有 .NET 语言都支持到一个单元中。
37)什么是托管代码?
托管代码用于在 CLR 环境中运行,称为 .NET 运行时。所有中间语言 (IL) 都设置为托管代码。
38).Net 中的序列化是什么?
序列化是指将对象转换为字节流的过程。主要用于传输对象。
39).Net 支持多少种语言?
以下是VB.Net支持的语言:
- C#
- VB.Net
- COBOL
- Perl的
40) Convert.tostring 和 i.tostring 方法有什么区别?
Convert.tostring 处理 Null,而 i.tostring 不处理 null。
41).NET 的两个主要部分是什么?
它们是 - 公共语言运行时 (CLR) 和 .NET Framework 类库。
42)线程和进程有什么区别?
线程用于同时执行多个程序。而进程每次只执行单个程序。
43)什么是强类型和弱类型?
强类型是在编译时检查变量的类型,而弱类型是在尽可能晚的时候检查系统的类型,也就是运行时。
44) 单个 .NET DLL 可以包含多少种 .NET 语言?
一个 DLL 仅支持一种语言。
45) 哪个类允许使用唯一键访问元素?
哈希表是允许使用唯一键访问元素的集合类。
46)什么是代码安全?
.NET 框架提供了安全功能来保护代码免受未经授权的用户的侵害。.NET 中有两种类型的安全性:
- 基于角色的安全性 – 授权用户
- 代码访问安全 – 保护系统资源免受未经授权的调用
47)哪个 DLL 用于 Microsoft .NET 运行时?
Mscoree.dll 用于 Microsoft .NET 运行时 DLL。
48)一个 DLL 可以包含多少个类?
DLL 中可存在无限数量的类。
49) 如何在.NET 中存储十进制数据?
BinaryWriter 用于在.NET 中存储十进制数据。
50)什么是深拷贝?
深度复制无非是创建一个新对象,然后将当前对象的非静态字段复制到新对象中。
这些面试问题也会对你的口试有帮助
您写道,vb.net 是独立于平台的,既可用于结构化错误处理,也可用于非结构化错误处理,
但在测验中你为什么把它标错了呢?
很有帮助
有点帮助
请纠正 2 个冲突。首先,您在问题答案中说 vb.net 是平台独立的,但在测验中您说 vb.net 不是平台独立语言;其次,vb.net 处理结构化和非结构化错误,但在测验中您说仅支持结构化错误处理。
测验有错误。立即修复!
很好,一般 3 星
非常感谢。