【发布时间】:2014-07-13 20:31:16
【问题描述】:
鉴于在 C# 中我们可以拥有在设置之前可以是任何类型的弱类型 var,是否可以根据测试的输出使用相同的 var 更改类型?
例如
var c = DBQuery.FindString("paramater", "data");
如果查询不成功,这将返回 NULL,如果有效,则返回字符串。
据我所知,由于 FindString 的返回类型为字符串,因此 var c 被键入为字符串,尽管它为空。
有没有办法取消设置 c 的类型以便它可以用于
var c = DBQuery.FindInt("parameter", "data2");
谢谢
【问题讨论】:
-
var不是“弱类型”。 “在设置之前可以是任何类型”——这是不正确的。 msdn.microsoft.com/en-us/library/bb383973.aspx "隐式类型的局部变量是强类型,就像你自己声明了类型一样......" -
展开:
var是一个隐式类型。它与显式指定类型完全相同:var s = "foo"与string s = "foo"相同。编译器会在编译时计算出在var位置上粘贴的值。
标签: c# .net variables type-inference dynamic-typing