2010-10-15 78 views
1

我在VB.Net下面的代碼片段(Web應用程序):什麼是來自VB.Net代碼的均衡C#代碼?

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

dfFileInfo是從System.Web.UI.WebControls DetailsView控件

當我嘗試將其轉換爲C#這樣的:

不能隱便利着想:

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

我,指出 「=」 後得到一個錯誤rt類型'System.Web.UI.Control'到System.Web.UI.WebControls.HyperLink'。存在明確的轉換(您是否缺少演員?)

我需要做些什麼來糾正此問題?

謝謝!

+0

如果您不希望它發生錯誤的轉換,您也可以'HyperLink lnkTemp = dvFileInfo.FindControl(「lnkPlan」)作爲HyperLink'。如果轉換不好,使用'as'將導致它返回null。 – 2010-10-16 01:59:07

回答

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) 
+0

謝謝,我知道它必須簡單。 – webdad3 2010-10-15 23:02:53

4

你只需要添加一個明確的轉換:

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

謝謝!你們分開了一分鐘。 – webdad3 2010-10-15 23:03:10

+0

我在「2秒前」看到他的時候,當我的「0秒前」說。親密的比賽! :) – 2010-10-16 00:04:53