C# 变量类型的强制转换

C# 变量类型的强制转换,c#,casting,C#,Casting,我尝试将对象int的变量类型转换为var 我的尝试是: var dummy = (items[items.Count() - 1].GetType()) items[items.Count()-1]; 我不知道我做错了什么,我看不到我的错误,但调试器说只有赋值、减量和“新对象”表达式可以用作命令。。。但这就是我正在做的 有人能告诉我我的错误吗? 非常感谢您,对于“初学者问题”我深表歉意。以下是您遇到的错误来源 编译器将(items[items.Count()-1].GetType())视为一个

我尝试将对象int的变量类型转换为var

我的尝试是:

var dummy = (items[items.Count() - 1].GetType()) items[items.Count()-1];
我不知道我做错了什么,我看不到我的错误,但调试器说只有赋值、减量和“新对象”表达式可以用作命令。。。但这就是我正在做的

有人能告诉我我的错误吗?
非常感谢您,对于“初学者问题”我深表歉意。

以下是您遇到的错误来源

编译器将
(items[items.Count()-1].GetType())
视为一个表达式,而不是强制转换语句,因此它看到的是

getAValue() (items[items.Count() - 1].GetType())
这没有任何意义


你应该像其他人说的那样投射你的变量

以下是您遇到的错误的来源

编译器将
(items[items.Count()-1].GetType())
视为一个表达式,而不是强制转换语句,因此它看到的是

getAValue() (items[items.Count() - 1].GetType())
这没有任何意义

你应该像其他人说的那样投射你的变量

您需要使用

你需要使用


强制转换是一种编译类型的操作,您告诉编译器:“此对象是[insert type here]”
GetType()
是一种运行时方法,返回特定类型(类型
type
)。因此有两个问题,您不能在编译时构造中使用运行时方法。其次,在本例中,您实际上将强制转换(假设这是可能的)到
类型
,而不是说
String
(假设
GetType()
返回
String

我不确定你想要完成什么,但这可能是你想要做的:

另外,我认为您可能不理解什么是
var
(根据您的一些评论)。“将内容强制转换为var”,var本质上是一种快捷方式,允许编译器推断类型。比如说:

var myString = "this is a test";
相当于:

string myString = "this is a test";

强制转换是一种编译类型的操作,您告诉编译器:“此对象是[insert type here]”
GetType()
是一种运行时方法,返回特定类型(类型
type
)。因此有两个问题,您不能在编译时构造中使用运行时方法。其次,在本例中,您实际上将强制转换(假设这是可能的)到
类型
,而不是说
String
(假设
GetType()
返回
String

我不确定你想要完成什么,但这可能是你想要做的:

另外,我认为您可能不理解什么是
var
(根据您的一些评论)。“将内容强制转换为var”,var本质上是一种快捷方式,允许编译器推断类型。比如说:

var myString = "this is a test";
相当于:

string myString = "this is a test";

这是不可能的。你想实现什么?我有一个包含不同类型对象的Arraylist,我试图将它们转换成一个变量,从另一个只有一种类型对象的列表中为它们赋值。但是好吧。。。然后我必须做一个“类型”切换。谢谢你的提问!我们只是不知道你在做什么,你想做什么。你写了一篇关于铸造的问题,但是在你的帖子中,你最后问的问题是关于你的编译器错误。更合适的标题应该是类似于
仅赋值、减量和“新对象”-表达式可以用作命令
var
不是类型。无法将某个内容转换为类型
var
,因为它不存在
var
只是一个关键字,表示“将此变量的类型设置为
=
运算符右侧表达式的编译时类型,这样我就不必费心键入了。”它仍然是一个固定的编译时类型。这是不可能的。你想实现什么?我有一个包含不同类型对象的Arraylist,我试图将它们转换成一个变量,从另一个只有一种类型对象的列表中为它们赋值。但是好吧。。。然后我必须做一个“类型”切换。谢谢你的提问!我们只是不知道你在做什么,你想做什么。你写了一篇关于铸造的问题,但是在你的帖子中,你最后问的问题是关于你的编译器错误。更合适的标题应该是类似于
仅赋值、减量和“新对象”-表达式可以用作命令
var
不是类型。无法将某个内容转换为类型
var
,因为它不存在
var
只是一个关键字,上面写着,“让这个变量的类型成为
=
操作符右边表达式的编译时类型,这样我就不需要费心去输入了。”它仍然是一个固定的编译时类型。根据你的帖子,我已经-1’了OP,因为他的问题不一致。谢谢这是有效的,比“类型”开关短得多。根据你的帖子,我已经-1'OP,因为他的问题不一致哇。谢谢这是可行的,比“类型”开关短得多。