C# 是否';使用';有什么好处吗?
引用某些方法时,可以使用C# 是否';使用';有什么好处吗?,c#,namespaces,using,C#,Namespaces,Using,引用某些方法时,可以使用using或显式键入整个命名空间。使用一种方法比使用另一种方法有什么速度优势,或者只是为了更容易地键入整个名称空间?谢谢运行时没有区别 在.NET元数据中,类型总是使用包含名称空间的全名表示,因此在编译程序时,C#中已知的using指令将消失 当使用名称空间内部或外部的编写时,有一些微妙的方面(在编译时)(例如,请参见),但这也只是编译时的问题。这纯粹是一个语法问题,并且编译为相同的东西。看看每个人产生的IL。我们都忘记了扩展方法吗?据我所知,如果没有usingnames
using
或显式键入整个命名空间。使用一种方法比使用另一种方法有什么速度优势,或者只是为了更容易地键入整个名称空间?谢谢运行时没有区别
在.NET元数据中,类型总是使用包含名称空间的全名表示,因此在编译程序时,C#中已知的using
指令将消失
当使用
名称空间内部或外部的编写时,有一些微妙的方面(在编译时)(例如,请参见),但这也只是编译时的问题。这纯粹是一个语法问题,并且编译为相同的东西。看看每个人产生的IL。我们都忘记了扩展方法吗?据我所知,如果没有using
namespace指令,就无法将它们引入范围。Nitpick:这是using指令,不是using语句。using
语句用于处理实现IDisposable的对象,以便对其进行垃圾收集。但这并不重要,因为元数据/IL级别中不存在扩展方法(除非计算ExtensionAttribute,但这是针对编译器的,而不是针对CLR)。问题是“使用”有什么好处吗?“答案是肯定的,在C#3.0及更高版本中,除了代码文件中的缩短标识符之外,还可以使用扩展方法。但是没有,运行时既没有优点也没有缺点。是的,但是在问题的文本中,它特别询问它是否对代码有任何好处,而不仅仅是语法上的甜头。因为扩展方法也只是语法上的糖分(尽管LINQ需要糖分来降低药物的使用),所以它们在这里不相关someEnumerable.Count()
与System.Linq.Enumerable.Count(someEnumerable)
等类似。