在 C# 中使用命名空间会影响性能吗?

Is performance affected by using namespaces in C#?

我正在使用 XNA 4.0 和 C# 创建游戏。每当我创建一个新的 class 时,它总是在顶部生成以下四行代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

在大多数情况下,我的 classes 中没有必要使用这些命名空间,因为我不需要显式调用它们提供的方法。我应该从每个 class 没有使用它们的地方删除它们吗?如果我保留这些代码行,对性能有影响吗?

编译器 "consumed" 命名空间,不存在于编译代码中。因此编译后的代码不受 using 语句数量的影响。显然,如果 using 太多(但只有一点点),编译器会变慢一点。

您可以从这里看到它:http://goo.gl/T5TIYx 在右窗格中有编译器 "generated" 的 IL 代码。各种usings.

无迹可寻

如果你有太多,编译器会变慢一点 using 因为当你引用一个类型时,它必须检查每个命名空间是否有你正在引用的类型,但它不能在第一个 "success" 处停止,因为 C# 编译器会告诉您即使存在一些歧义(class 在两个不同的命名空间中具有相同的名称)