8

I am trying to convert the example provided in MSDN article Creating Dynamic Data Entry User Interfaces to C#, but am stuck at the following code:

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

How do I convert the above VB.NET statement to C#?

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Girish
  • 758
  • 2
  • 8
  • 18
  • possible duplicate of [C#'s equivalent to VB.Net's DirectCast?](http://stackoverflow.com/questions/2683847/cs-equivalent-to-vb-nets-directcast) – Joel Etherton Dec 10 '10 at 13:23
  • @Joel: I think that question ends up *including* the answer to this one, but it's ostensibly about `DirectCast` rather than `CType`, so I'm not voting to close. – Cody Gray - on strike Dec 10 '10 at 13:32
  • @Cody Gray - that's precisely why I voted to close. By searching with his question, I was able to find one that included his answer. While the question itself may not be an "exact" duplicate, the information he seeks is there. – Joel Etherton Dec 10 '10 at 14:06

1 Answers1

11

In C#, you can specify a cast by putting the type you want to cast to in parenthesis in front of the reference variable that you want to cast ((type)instance).

So, to cast the object (dq) to the type IUIBuildingBlock, you could use the following code:

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

(Note that this will throw an exception if the cast is done on an object that doesn't implement IUIBuildingBlock, but so will CType, so I assume that is not a problem.)

Cody Gray - on strike
  • 239,200
  • 50
  • 490
  • 574
  • For those wondering about the differences between C# (int), and VB's CINT, and DirectCast(x, integer). The answer to http://stackoverflow.com/questions/3056514/difference-between-directcast-and-ctype-in-vb-net is very helpful – Matt Woodard Jun 27 '12 at 20:55