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

C# 与完整名称空间相比,使用指令是否会影响性能或增加应用程序大小?,c#,namespaces,using-directives,C#,Namespaces,Using Directives,我在某个地方读到,当你使用系统添加到你的.cs文件中,编译器(或者其他东西)会将所有系统相关类添加到你的.cs文件中,因此最好不要总是使用系统添加并使用其完整名称空间引用您的DateTime,例如:System.DateTime,如果这样做很容易,并且在.cs文件中很少引用System 这是真的吗?如果是的话,这会影响性能或增加应用程序的大小吗?如果是这样,我意识到使用系统更易于编写,而且非常方便,因此,您必须权衡方便与性能。也可能是只使用系统添加可能没有多大区别,但当添加了许多引用时,它可能会

我在某个地方读到,当你使用系统添加
到你的
.cs
文件中,编译器(或者其他东西)会将所有
系统
相关类添加到你的.cs文件中,因此最好不要总是使用系统添加
并使用其完整名称空间引用您的
DateTime
,例如:
System.DateTime
,如果这样做很容易,并且在.cs文件中很少引用
System

这是真的吗?如果是的话,这会影响性能或增加应用程序的大小吗?如果是这样,我意识到
使用系统
更易于编写,而且非常方便,因此,您必须权衡方便与性能。也可能是只使用系统添加
可能没有多大区别,但当添加了许多引用时,它可能会有多大区别?谢谢

如果使用“使用系统”,则可以访问系统类中的所有方法。
您的类有一个到所有系统的“链接”。
例如,如果您编写“使用System.DateTime;”,您只能访问DateTime函数。
在我看来,最好使用指定的用法,如“使用System.DateTime”。
因此,在.cs文件中没有指向“不必要”类/方法的链接。
此外,“使用系统”不包括系统内部的所有方法。
例如IO类或Xml类。
如果您想使用这些,您必须在方法调用之前编写“System.IO.”,或者必须使用System.IO编写

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

对于语言编译器来说,这可能是非常微小的额外工作,但您希望牺牲可读性

编译时和运行时流程图的概述来自

System.Console.WriteLine(“某物”)

这只是一个容易理解的目的。但开发人员每次都不要提及完全限定的名称


所以那次使用名称空间
使用.System

时,我在某个地方读到了一些毫无意义的废话。你在哪里读到的?打写这篇文章的人。使用
添加
——语句的存在有一个原因:让你的生活更轻松。使用它,并非所有情况下都必须编写每种类型的完全限定名。它还使代码更具可读性。基本上,如果您在代码中编写
System.DateTime
,或者使用
DateTime
与使用
组合使用,都没有什么区别,因为无论哪种情况,您都需要对mscorlib的引用。即使这会影响您的性能,您也不应该关心那些纳秒。你的代码中似乎有比那些mirco优化更大的问题(如果有的话也是如此)@hvaughan3-你应该总是更喜欢设定目标、衡量、比较目标,如果需要的话,还应该进行分析(识别猪),而不是试图学习“规则”对于性能或大小。有一种说法是using指令导致加载包含类的程序集,但这是不正确的。组件在首次使用时加载;using指令的存在只是语法上的糖分。不管你是否使用它,它只是为了可读性。在MVC世界中,有许多类等被称为同一事物,我个人更喜欢显式地使用前缀,但这只是源代码/智能感知偏好,对运行时没有影响。
使用
指令,而不是
使用
语句。C语言中有两个截然不同的特性,它们使用关键字
using
。当你实际上是指另一个的时候,使用其中一个的名字只会导致混乱。回答得很好,谢谢!没有考虑检查编译器结果代码中的差异。