2010-12-10 66 views
7

我想在MSDN文章Creating Dynamic Data Entry User Interfaces到C#提供的示例進行轉換,但我被困在下面的代碼:什麼是VB.NET中的CType的C#等價物?

CType(dq, IUIBuildingBlock).QuestionText = reader("QuestionText") 

如何轉換上面的VB.NET語句C#?

+0

[C#的等同於VB.Net的DirectCast?]的可能重複(http://stackoverflow.com/questions/2683847/ cs-equivalent-to-vb-nets-directcast) – 2010-12-10 13:23:42

+0

@Joel:我認爲這個問題最終會包含*包括*這個答案,但它表面上是關於'DirectCast'而不是'CType',所以我沒有投票結束。 – 2010-12-10 13:32:36

+0

@Cody Gray - 這正是我投票結束的原因。通過搜索他的問題,我找到了一個包括他的答案。雖然這個問題本身可能不是一個「確切」的重複,但他尋求的信息就在那裏。 – 2010-12-10 14:06:17

回答

9

在C#中,您可以通過將想要強制轉換的類型置於要轉換的引用變量((type)instance)前的圓括號中來指定強制轉換。

因此,對象(dq)轉換爲類型IUIBuildingBlock,你可以使用下面的代碼:

((IUIBuildingBlock)dq).QuestionText = reader("QuestionText"); 

(請注意,這將拋出一個異常,如果中投的對象上做到了不執行IUIBuildingBlock,但CType也是如此,所以我認爲這不是問題。)

+0

Thanx科迪。這工作完美! – Girish 2010-12-10 14:56:24

+0

對於那些想了解C#(int)和VB的CINT,以及DirectCast(x,整數)之間區別的人。答案http://stackoverflow.com/questions/3056514/difference-between-directcast-and-ctype-in​​-vb-net是非常有用的 – 2012-06-27 20:55:31

相關問題