2010-12-10 95 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

相关问题