什么是这个VB.Net代码中的等效C#代码?

时间:2010-10-15 22:58:23

标签: c# asp.net c#-4.0

我在VB.Net(Web应用程序)中有以下代码段:

Dim lnkTemp as HyperLink = dvFileInfo.FindControl("lnkPlan")

dfFileInfo是System.Web.UI.WebControls

中的DetailsView控件

当我尝试将此转换为C#时:

HyperLink lnkTemp = dvFileInfo.FindControl("lnkPlan");

我在“=”之后收到错误:

无法将类型'System.Web.UI.Control'隐式转换为System.Web.UI.WebControls.HyperLink'。存在显式转换(您是否错过了演员?)

我需要做些什么来纠正这个问题?

谢谢!

2 个答案:

答案 0 :(得分:4)

你只需要添加一个显式的强制转换:

HyperLink lnkTemp = (HyperLink)dvFileInfo.FindControl("lnkPlan");

答案 1 :(得分:4)

投下它:

HyperLink lnkTemp = (HyperLink)dvFileInfo.FindControl("lnkPlan");

或者更安全一点:

HyperLink lnkTemp = dvFileInfo.FindControl("lnkPlan") as HyperLink;
// check for lnkTemp == null

为了清楚起见,VB代码的编写者可能应该执行以下操作:

Dim lnkTemp As HyperLink = DirectCast(dvFileInfo.FindControl("lnkPlan"), HyperLink)