在c#中,当您为命名空间添加using
指令时,它使您可以访问该特定命名空间中的所有类型。然而,如果名称空间有很多类型,而我只需要一个特定的类型,我通常只使用完全限定的名称,认为我不想让任何我知道我不会使用的不必要的类可用(特别是如果名称空间中有很多这样的类)出于性能原因。我在想,必须对性能产生一些影响(不管有多小)才能使它们可用,而不是不可用,但影响有多大呢?(如果真的有的话)。如果是这样,那么在所有地方都这样做是不是不好的做法,因为它不会开始积累到一些明显的东西(性能方面)?
我确实看到了另一个关于使用using
指令与完全限定名称的SO帖子,但它不是在参考性能。
using
指令只是编译过程中消失的语法糖。名称空间是否通过using
包含或在完全限定类型名称中提到,在结果字节码中是完全无关的。因此,在运行时使用其中一个或另一个都没有性能优势。
没有区别。
它可能对编译器性能的影响/好处可以忽略不计(即可能无法测量)(如在运行msbuild时),但在运行时,IL显式地知道预期的类型,因为它在代码中作为类型句柄被烘焙。除非使用反射,否则不会对类型进行"搜索"。
我必须说,没有。编译器将生成相同的IL代码,所以您不必担心。
这要看情况。
使用Using指令可以帮助你更快地编写代码。但是,如果你有2个命名空间,你使用using指令,这两个命名空间的方法都有相同的名字,也有相同的签名,你会遇到麻烦。