2010-12-10 32 views
7

estoy tratando de convertir el ejemplo proporcionado en el artículo de MSDN Creating Dynamic Data Entry User Interfaces a C#, pero estoy atascado en el siguiente código:¿Cuál es el equivalente de C# de CType en VB.NET?

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

¿Cómo convierto lo anterior declaración VB.NET a C#?

+0

posible duplicado de [C# es equivalente a DirectCast de VB.Net?] (http://stackoverflow.com/questions/2683847/ cs-equivalent-to-vb-nets-directcast) –

+0

@Joel: Creo que la pregunta termina * incluyendo * la respuesta a esto, pero aparentemente se trata de "DirectCast" en lugar de "CType", así que no voy a votar para cerrar. –

+0

@Cody Gray: es precisamente por eso que voté para cerrar. Al buscar su pregunta, pude encontrar una que incluyera su respuesta. Si bien la pregunta en sí misma puede no ser un duplicado "exacto", la información que busca está allí. –

Respuesta

9

En C#, puede especificar un modelo poniendo el tipo que desea convertir entre paréntesis delante de la variable de referencia que desea convertir ((type)instance).

lo tanto, para convertir el objeto (dq) al tipo IUIBuildingBlock, podría utilizar el siguiente código:

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

(Tenga en cuenta que esto será una excepción si el reparto se realiza en un objeto que no implementa IUIBuildingBlock, pero también lo hará CType, así que supongo que no es un problema.)

+0

Thanx Cody. Esto funciona perfecto! – Girish

+0

Para aquellos que se preguntan acerca de las diferencias entre C# (int) y CINT de VB, y DirectCast (x, integer). La respuesta a http://stackoverflow.com/questions/3056514/difference-between-directcast-and-ctype-in-vb-net es muy útil –

Cuestiones relacionadas