Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
.net 未使用的名称空间指令会导致任何更改吗? 我确信代码会产生相同的结果,但是CLR在分配内存时会考虑未使用的命名空间指令吗?另一个问题是,CLR在分配内存时考虑未使用的代码块?_.net_Clr_Memory Management - Fatal编程技术网

.net 未使用的名称空间指令会导致任何更改吗? 我确信代码会产生相同的结果,但是CLR在分配内存时会考虑未使用的命名空间指令吗?另一个问题是,CLR在分配内存时考虑未使用的代码块?

.net 未使用的名称空间指令会导致任何更改吗? 我确信代码会产生相同的结果,但是CLR在分配内存时会考虑未使用的命名空间指令吗?另一个问题是,CLR在分配内存时考虑未使用的代码块?,.net,clr,memory-management,.net,Clr,Memory Management,在运行时,无论您是否使用未使用的,在代码中使用指令,都不会有区别。 using指令是为了方便您编写的 using System.IO; [...] string path = Path.GetDirectoryName(filename); 而不是写完全限定的名称 string path = System.IO.Path.GetDirectoryName(filename); 每次要使用System.IO命名空间中的类型时。该指令告诉编译器要搜索文件中使用的类型的名称空间。然后编译器将实际用

在运行时,无论您是否使用未使用的<代码>,在代码中使用指令,都不会有区别。

using
指令是为了方便您编写的

using System.IO;
[...]
string path = Path.GetDirectoryName(filename);
而不是写完全限定的名称

string path = System.IO.Path.GetDirectoryName(filename);
每次要使用
System.IO
命名空间中的类型时。该指令告诉编译器要搜索文件中使用的类型的名称空间。然后编译器将实际用第二个示例替换第一个示例,即程序集中的IL代码将始终使用完全限定的类型名。未使用的命名空间将不会出现在已编译的程序集中

但是,有理由保持导入的名称空间的干净列表。John Feminella在一份声明中说:

有几个理由让你这么做 把它们拿出来

  • 这是毫无意义的。它们没有任何价值
  • 这令人困惑。从该名称空间中使用了什么
  • 如果你不这样做,那么你将逐渐积累毫无意义的使用 代码随时间变化时的语句 时间
  • 静态分析比较慢
  • 代码编译得更快

要添加到0xA3的答案中:
使用
指令仅存在于C#源代码中。与注释一样,它们不存在于程序集二进制文件中。

可能重复: