【发布时间】:2023-03-09 09:28:01
【问题描述】:
既然引入了var 关键字,为什么要使用为什么要使用完全限定名称?
var 有效地减少了变量声明的类型。因此,可以保留完整的声明而不会使代码膨胀。这让我想知道,你为什么还要声明namespace 用法?
// A lot of typing, but unambiguous.
System.Drawing.Point a = new System.Drawing.Point();
// using System.Drawing, Point possibly ambiguous.
Point b = new Point();
// using System.Drawing, Point possibly ambiguous.
var c = new Point();
// Less typing, still unambiguous.
var d = new System.Drawing.Point();
这里的最佳做法是什么?
【问题讨论】:
-
有什么意义?如果有歧义,代码无论如何都将无法编译...只需使用
using子句,并在(通常很少见的)歧义情况下使用完全限定名称... -
为什么不走得更远 - 为什么使用像“Point”和“Stream”这样长的名字,当 2-3 个字符就足够了,比如“pPx”和“s$e”(而你也会在混淆器上节省一大笔钱)。
-
@Thomas,代码可能无法编译,但不能保证。
-
@l33t,好吧,你能给我一个歧义编译成功的例子吗?这是 C# 语言中最重要的原则之一:编译器从不尝试猜测;如果有疑问,它会失败并让您解决歧义。如果成功,则可以确定当前作用域中没有其他同名符号。
标签: c# .net vb.net namespaces