/ / O que é código C # igualitário deste código VB.Net? - c #, asp.net, c # -4.0

O que é código C # igualitário deste código VB.Net? - c #, asp.net, c # -4.0

Eu tenho o seguinte trecho no VB.Net (aplicativo da web):

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

dfFileInfo é um controle DetailsView de System.Web.UI.WebControls

Quando eu tento converter isso para C # assim:

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

Eu recebo um erro após o "=" que afirma:

Não é possível converter implicitamente o tipo "System.Web.UI.Control" para System.Web.UI.WebControls.HyperLink ". Existe uma conversão explícita (você está sem um elenco?)

O que preciso fazer para corrigir este problema?

Obrigado!

Respostas:

4 para resposta № 1

Apenas lance:

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

Ou seja um pouco mais seguro:

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

O escritor do código VB provavelmente deveria estar fazendo o seguinte para clareza:

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

4 para resposta № 2

Você só precisa adicionar um elenco explícito:

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