我尝试将变量类型的Object int强制转换为var。
我的尝试是:
var dummy = (items[items.Count() - 1].GetType()) items[items.Count()-1];
我不知道我做错了什么,我无法看到我的错误,但是调试器说只有分配,减少和“新对象” - 表达可以用作命令......但这就是我正在做的事情...
有人可以告诉我我的错误吗? 非常感谢,并为“beginnerquestion”感到抱歉。
答案 0 :(得分:2)
您需要使用Convert.ChangeType
var obj = Convert.ChangeType(d, items[items.Count() - 1].GetType());
答案 1 :(得分:1)
这是您遇到的错误来源。
您的编译器将(items[items.Count() - 1].GetType())
视为表达式而不是转换语句,因此它看到的是
getAValue() (items[items.Count() - 1].GetType())
没有任何意义。
你应该像其他人所说的那样施展你的变量。
答案 2 :(得分:1)
Casting是一个编译类型的操作,你告诉编译器:“这个对象是[insert here here]”。 GetType()
是一个返回特定类型(类型Type
)的运行时方法。因此存在一些问题,您无法在编译时构造中使用运行时方法。其次,在这种情况下,您实际上是在Type
进行投射(假设这是可能的)而不是String
(假设GetType()
返回String
)。
我不确定你要完成什么,但这可能就是你想做的事:http://msdn.microsoft.com/en-us/library/dtb69x08.aspx
此外,我认为您可能无法理解var
是什么(基于您的一些评论)。你将“转换为var”,var本质上是一个允许编译器推断类型的快捷方式。所以像这样:
var myString = "this is a test";
相当于:
string myString = "this is a test";