将对象强制转换为int dons';不起作用
本文关键字:dons 不起作用 int 对象 转换 | 更新日期: 2023-09-27 18:22:18
我有FormView并绑定到CommandArgument记录的属性Id:
CommandArguman='<%# Eval("Id") %>'
但在服务器端的ItemCommand处理程序中,这不起作用:
int id = e.CommandArgument;
并获得错误:
指定的强制转换无效。
但这项工作:
int id = int.Parse(e.CommandArgument.ToString());
返回类型e.CommandArgument是Object,但为什么我不能将Object强制转换为int?
如果没有特定的强制转换(如(int)e.CommandArgument
),就无法将和object
强制转换为int
,而且由于对象是字符串,因此无法执行此操作。
你可以做
int id = int.Parse((string)e.CommandArgument);
如果e.CommandArgument
是string
,但你不会再从中受益,那么你的代码
事实上,我会让你的代码保持原样,因为如果对象为null或不是字符串,它就不会被抛出。你也可以在演员阵容中使用安全词as
,但你不会从中受益。
如需进一步学习,请搜索"铸造"或阅读此处