Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否';使用';有什么好处吗?_C#_Namespaces_Using - Fatal编程技术网

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)
等类似。