如何在一行代码上转换和使用对象?

时间:2013-03-22 02:41:10

标签: c# asp.net .net casting

我正在尝试从webcontrol访问父页面上的隐藏字段。以下工作但我想在一行中完成。

HiddenField hiddenFieldPid = (HiddenField)this.Parent.FindControl("HiddenFieldPid");
hiddenFieldPid.Value = ListBox_JobPositions.SelectedValue;

不确定为什么这不起作用但是当我这样做时,我没有在intellisense中显示Value属性:

(HiddenField)this.Parent.FindControl("HiddenFieldPid").NOOPTIONFORVALUEHERE = ListBox_JobPositions.SelectedValue;

3 个答案:

答案 0 :(得分:5)

您必须添加括号才能使演员在正确的位置工作:

((HiddenField)this.Parent.FindControl("HiddenFieldPid"))
                         .Value = ListBox_JobPositions.SelectedValue;

但请注意,在一行中执行此操作会打开几个可能难以诊断的异常。

答案 1 :(得分:2)

你很亲密:

((HiddenField)this.Parent.FindControl("HiddenFieldPid")).Value = ListBox_JobPositions.SelectedValue;

基本上,FindControl方法返回需要强制转换的对象。

答案 2 :(得分:0)

((HiddenField)this.Parent.FindControl("HiddenFieldPid")).value=ListBox_JobPositions.SelectedValue.toString();