我正在使用XNA 4.0和C#创建游戏。每当我创建一个新类时,它总是在顶部生成以下四行代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
在大多数情况下,这些命名空间不必在我的类中使用,因为我不需要显式调用它们提供的方法。我应该从不使用它们的每个班级中删除它们吗?如果我将这些代码留在?
,会对性能产生影响吗?答案 0 :(得分:3)
命名空间被编译器“消耗”,并且不存在于编译的代码中。因此,编译后的代码不受存在的using
语句数的影响。很明显,如果using
太多using
(但只有一点点),编译器会慢一点。
您可以从这里看到它:http://goo.gl/T5TIYx在右侧窗格中,有一个由编译器“生成”的IL代码。没有各种using
s的痕迹。
如果你有太多{{1}},编译器会慢一点,因为当你引用一个类型时,它必须检查每个命名空间是否有你引用的类型,它不能停在第一个“成功”,因为C#编译器会告诉你即使存在一些歧义(两个不同命名空间中具有相同名称的类)