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