gpt4 book ai didi

c# - 为什么 C# using 指令在不影响编译过程时称为 "directive"?

转载 作者:行者123 更新时间:2023-11-30 13:57:11 24 4
gpt4 key购买 nike

问题

为什么是C# using directive在不影响编译过程的情况下调用指令

术语指令预处理器指令 ( examples ) 之间有区别吗?

这个问题是关于术语的。

阐述

有一个using directive还有一个 using statement .我说的是 using directive在这里。

维基百科说directives是更改编译过程的编译器指令。

这个 Stackoverflow answer表示 C# using 指令不会以任何方式改变编译过程。

那么,如果 using 指令不改变编译过程,为什么它仍然被称为指令?

最佳答案

您链接到的答案表明删除未使用使用指令不会影响编译输出

using 指令列出了允许编译器在生成的代码中隐式引用的命名空间。如果没有该指令,您必须完全限定所有名称,因此:

using System.Diagnostics;
...
var x = new Process();

代替

var x = new System.Diagnostics.Process();

所以它是一个真正的指令,因为它改变了编译器解释代码的方式。

预处理器指令用于在编译源代码之前更改源代码。C# 中的预处理器指令非常有限。与 C/C++ 不同——您可以在编译之前完全重写源代码——在 C# 中,您可以打开和关闭代码块,并更改一些编译器标志。据我所知,它们不像在 C/C++ 中那样在单独的阶段应用。

为了完整起见,using 语句是语法糖,转向

using (var x = new IDisposable()) {}

(其中 var x = 是可选的)

进入

var x = new IDisposable();
try{ ... }
finally { x.Dispose(); }

关于c# - 为什么 C# using 指令在不影响编译过程时称为 "directive"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22352981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com