【问题标题】:Working of "imports namespace"“导入命名空间”的工作
【发布时间】:2026-01-05 11:00:01
【问题描述】:

我从here 知道我们必须对子命名空间进行显式导入,因为导入不会包含子命名空间。

但我的问题是,如果我执行“导入系统”,它是否会在 IL/native 代码中包含该命名空间内的所有类/方法,或者仅引用(在应用程序中使用)将包含在 IL/native代码。

【问题讨论】:

  • Imports System 是 VB.NET;如果你说的是 C#,那就是 using System;

标签: vb.net namespaces import


【解决方案1】:

导入命名空间并不意味着代码中包含任何内容。这只意味着编译器可以识别来自该命名空间的标识符。

项目中的引用真正决定了应用程序使用哪些库。不过,这些库会在需要时加载,它们不包含在您的可执行文件中。

【讨论】:

  • 那么在运行时引用的命名空间将被完全加载,还是只在内存中加载所需的类?
  • @Antoops:嗯,整个库都将被加载,但这并不一定意味着所有类都需要通过 JIT 编译器运行并创建。但是,库中的某些类依赖于其他类,因此必须创建比您直接使用的类更多的类。