【发布时间】:2014-08-29 07:36:53
【问题描述】:
我刚刚查看了 VS2013 中用于新 WebForms 应用程序的模板。当我使用模板创建一个新站点时,有很多这样的代码:
Dim requestCookie = Request.Cookies("SomeCookie")
将鼠标悬停在requestCookie 变量名上,VS 指出它确实是HttpCookie 对象类型:
自 VB6(ASP 经典)以来,我还没有见过这样声明的变量。我在 C# 模板中看到使用了相同的方法。我也看到人们在编写 C# 代码时经常使用它。
这是一种新方法还是一直“有效”?除了更少的代码之外,它还有什么好处吗?
我个人认为它使代码更难破译,并且更喜欢显式设置类型:
所有MSDN documentation regarding Dim 都显示As 正在使用中。
Dim requestCookie As HttpCookie = Request.Cookies("SomeCookie")
【问题讨论】:
-
这是“类型推断”。编译器有足够的信息来判断类型。
-
好的,谢谢约翰,但是根据问题,这里的实际好处是什么?只是更少的代码?
-
as 语句在您要初始化变量后声明时很好。但是,如果您要立即初始化变量,那么如果编译器无论如何都只是要推断类型,那么指定类型似乎是不必要的。
-
@EvilDr - 如果您想使用类型推断并且仍然让编译器为您“检查”,请查看
Option Infer On(或关闭)语句以及Option Explicit。