如链接所示:http: //msdn.microsoft.com/en-us/library/bb383973.aspx
...隐式类型的局部变量是强类型的,就像您自己声明了类型一样,但是编译器确定类型...
但我有这样一段代码:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["user"] == null) Response.Redirect("Default.aspx");
StringBuilder sb = new StringBuilder();
foreach (var item in Session)
{
sb.Append("Session Parameter: [");
sb.Append(item);
sb.Append("]<p />Guid Value: [");
sb.Append(Session[item] + "]");
}
Response.Write(sb.ToString());
}
我在 Visual Studio 中遇到这样的错误:
参数 1:无法从 'object' 转换为 'string' 的行:
sb.Append(Session[item] + "]");
但是item
在运行时将其识别string
为我在调试器中查看的类型。
当我var
在 msdn/in 上阅读书籍时,我认为这var
与 RTTI 无关。编译器只是在编译时使用这种隐式类型在显式类型等上更改变量string, int
。
为什么我会发现这样的错误?