将对象转换为int不起作用

时间:2013-07-14 06:48:27

标签: c# casting

我有FormView并绑定到 CommandArgument 记录的属性ID:

CommandArguman='<%# Eval("Id") %>' 

但在ItemCommand处理程序的服务器端,这不起作用:

int id = e.CommandArgument;

并获得错误:

  

指定的演员表无效。

但是这项工作:

int id = int.Parse(e.CommandArgument.ToString());

e.CommandArgument 的返回类型是Object,但为什么我不能将对象转换为int?

1 个答案:

答案 0 :(得分:1)

如果没有像object这样的具体演员,你就无法演员和int(int)e.CommandArgument,你不能这样做,因为该对象是一个字符串。

你可以做到

int id = int.Parse((string)e.CommandArgument);

如果e.CommandArgumentstring,但您不会再受益了,那么您的代码

实际上我会保留你的代码,因为如果对象为null或不是字符串,它将不会被抛出。你也可以使用安全的单词as作为演员,但你也不会从中受益。

进一步学习搜索“cast”或阅读here