与完整名称空间相比,使用指令是否会损害性能或增加应用程序大小?

时间:2016-09-08 12:57:17

标签: c# namespaces using-directives

我在某处读到当你将using System;添加到.cs文件时,编译器(或者其他东西)会将所有System个相关类添加到你的.cs文件中,所以也许吧最好不要总是添加using System;,而是使用其完整的命名空间引用您的DateTime,例如:System.DateTime,例如,如果它很容易做,很少有东西引用{{1}它在.cs文件中。

这是真的,如果是这样,是否会损害性能或增加应用程序的大小?如果是这样,我意识到System更容易编写并且更方便,因此,您必须权衡方便性和性能。也可能只是添加using System;可能没有太大区别,但是当添加了许多引用时,也许可以?谢谢!

3 个答案:

答案 0 :(得分:6)

使用指令 完整命名空间 生成相同的IL。

enter image description here

enter image description here

对于语言编译器来说,这可能是非常微小的额外工作,但是你想为了可读性而牺牲。

enter image description here

编译时和运行时流程图概述来自Illustrated C# 2012 by Daniel Solis

答案 1 :(得分:-1)

提及

System.Console.WriteLine("Something");

这只是易于理解的目的。但每次开发者点都没有完全提到Qualify Names。

所以那个时候使用命名空间Using.System

答案 2 :(得分:-2)

如果您使用“使用系统”;您可以访问System类中的所有方法 您的班级与所有系统都有“链接” 如果你写“使用System.DateTime;”例如,您只能访问DateTime功能 在我看来,最好使用像“using System.DateTime”这样的指定用法 因此,您的.cs文件中没有“不必要的”类/方法的链接 此外,“使用系统”不包括系统内的所有方法 这方面的例子是IO类或Xml类 如果你想使用这些,你必须写“System.IO”。在方法调用之前,或者您必须使用System.IO写入;