Answers:
您是对的,因为两者的使用using
无关。
但是,using
在两种情况下都有几个充分的理由要使用。
using
语句是为.NET 1.0创建的,具有语义意义(“我在以下代码中使用此名称空间”)using
都具有语义意义。用简单的英语来说,您是using
一个名称空间或您是using
已声明的一次性对象。using
关键字,语言设计人员不必在该语言中创建另一个保留字。这有助于保持语言清洁。再次给他们时间,语言设计人员可能会选择使用import
名称空间声明来消除这两种选择的歧义(using
在.NET的更高版本中使用了可抛弃的对象)。我们永远不会知道,它实际上并不重要,因为由于上下文非常清楚,您正在使用两种含义中的哪一种。
说了这么多,请不要using MyNamespace.DisposableObject = DisposableObject;
随处乱扔带有名称空间别名的代码。
var
是经典示例,其中名为的作用域内类型var
优先于关键字。
g++ --std=c++11
,或允许源文件指定方言(如Haskell(?),Racket,Perl甚至Python)。也可以在一种关键字永远不会在不保留某些标识符的情况下与可能的标识符在语法上发生冲突的方式(尽管对于使用LALR解析器和前置词法分析器的现成语言实现而言,这可能是困难的)
@using
语言设计师通常会尝试限制关键字的数量。当保留关键字时,它不能用作用户代码中的标识符,如果只是您需要的单词,这将很烦人。从其他语言移植代码时,这也是一个障碍-微软希望人们将代码从Java移植到C#。C#确实比Java具有更多的关键字,但是每个新关键字都会使其变得更加困难。此外,.net语言旨在与使用不同语言编写的API进行交互,而这些语言可能没有相同的关键字,如果公共成员也是关键字,则会引起麻烦。
的两种用法using
是明确的,因为它们出现在语法中的位置,因此“使用”在两种情况下都是合适的术语。因此,重用相同的关键字很有意义。您将注意到其他重复使用关键字的示例,例如:
new
在一般约束下 in
in foreach
和in变体类型参数 default
作为switch
操作符(default(T)
)中的子句和。