visual texto significa que numero funciones funcion convertir conversion cint cdbl .net vb.net type-conversion vb.net-to-c#

texto - ¿Alternativa a las funciones de conversión de tipos de VB.NET(CBool) en C#?



funciones de conversion en visual basic (3)

¿Hay alguna alternativa a la palabra clave CBool de VB en C #?

¿Qué hay de todas las otras funciones?

CBool convertirá a Boolean en cualquier booleano válido: 0 , "False" , null , etc.



El truco es que las "funciones" de Cxx en VB.NET no son realmente funciones . De hecho, son más como operadores que el compilador traduce a lo que determina es la conversión de tipo "mejor coincidencia".

Paul Vick solía tener un gran artículo sobre esto en su blog, pero parece que todas esas páginas ya se han eliminado. MSDN (que es más exacto aquí) dice:

Estas funciones se compilan en línea, lo que significa que el código de conversión es parte del código que evalúa la expresión. A veces no hay un llamado a un procedimiento para lograr la conversión, lo que mejora el rendimiento. Cada función coacciona una expresión a un tipo de datos específico.

Las opciones que tiene disponibles para hacerlo incluyen un lanzamiento directo (como: (bool)var ), un intento de conversión (usando el operador as ), llamando a uno de los métodos definidos en la clase System.Convert , llamando al Type.Parse aplicable Type.Parse Método Type.Parse , y tal vez algunas otras estrategias.

No hay un equivalente directo de esto en C #: en su lugar, tienes que pensar en el compilador.

En este caso, seguramente querrá usar la sobrecarga apropiada del método Convert.ToBoolean porque ese método particular tendrá la lógica necesaria para convertir el valor en un bool . Un lanzamiento directo no funcionará aquí.


Si espera convertir desde uno de los valores de cadena: "True", "true", "False" o "false", debe usar Boolean.Parse. En lugar de tratar de ser "inteligente" al respecto, Parse "fallará rápidamente" si no obtiene lo que espera. Al usar una conversión "inteligente" cuando realmente no la necesita, puede enmascarar los errores en su origen y luego tener que rastrearlos cuando aparecen más adelante en el código, lo que generalmente es más difícil.