Programar con Visual Basic frente a C#
Actualización: noviembre 2007
Puede crear soluciones de Visual Studio Tools para Office con Visual Basic o con C#. Como los modelos de objetos de Microsoft Office se diseñaron para usarlos con Microsoft Visual Basic para Aplicaciones (VBA), los desarrolladores de Visual Basic pueden trabajar cómodamente con los objetos expuestos por las aplicaciones de Microsoft Office. Los programadores que utilizan C# no tienen los mismos accesos directos cuando trabajan con el modelo de objetos de Microsoft Office. Hay también algunas diferencias entre las características de programación básicas en el desarrollo de Office y el código administrado cuando se escribe en Visual Basic y C#.
Diferencias fundamentales entre Visual Basic y C#
En la siguiente tabla se muestran las diferencias principales entre Visual Basic y C# para el desarrollo de Office.
Característica |
Descripción |
Compatibilidad con Visual Basic |
Compatibilidad con C# |
---|---|---|---|
Parámetros opcionales |
Muchos métodos de Microsoft Office tienen parámetros que no se requieren al llamar al método. Si no se pasa ningún valor para el parámetro, se utiliza un valor predeterminado. |
Visual Basic admite parámetros opcionales. |
C# no admite parámetros opcionales. En su lugar, debe pasar un valor para todos los parámetros. Para obtener más información, consulte Descripción de los parámetros opcionales en las soluciones de Office. |
Pasar parámetros por referencia |
Los parámetros opcionales de la mayoría de los ensamblados de interoperabilidad primarios de Microsoft Office se pueden pasar por valor. Sin embargo, en algunos ensamblados de interoperabilidad primarios, los parámetros opcionales que aceptan tipos de referencia se deben pasar por referencia. Para obtener más información sobre los parámetros de tipo de valor y de tipo de referencia, vea Pasar argumentos por valor y por referencia (para Visual Basic) y Pasar parámetros (Guía de programación de C#). |
No se necesita trabajo adicional para pasar parámetros por referencia. El compilador de Visual Basic pasa automáticamente los parámetros por referencia cuando resulta necesario. |
Los parámetros opcionales que aceptan tipos de referencia en algunos ensamblados de interoperabilidad primarios (como el ensamblado de interoperabilidad primario para Word) se deben pasar utilizando la palabra clave ref y debe pasar una variable que contenga el valor real. |
Propiedades parametrizadas |
Algunas propiedades aceptan parámetros y actúan como funciones de sólo lectura. |
Visual Basic admite propiedades que aceptan parámetros. |
C# requiere el uso de los descriptores de acceso get y set para la configuración y recuperación de valores de la propiedad que aceptan parámetros. |
Enlace en tiempo de ejecución |
El enlace en tiempo de ejecución implica la determinación de las propiedades de los objetos en tiempo de ejecución, en lugar de convertir variables en el tipo de objeto en tiempo de diseño. |
Visual Basic puede realizar el enlace en tiempo de ejecución cuando la instrucción Option Strict se establece en Off. Para obtener más información, consulte Option Strict (Instrucción). |
C# no realiza directamente el enlace en tiempo de ejecución. Sin embargo, puede utilizar los tipos del espacio de nombres System.Reflection para determinar los miembros disponibles de un tipo especificado y realizar un tipo de enlace en tiempo de ejecución. |
Índices de matriz |
Los límites de matriz inferiores de las colecciones de las aplicaciones de Microsoft Office comienzan en el 1. De manera predeterminada, Visual Basic y Visual C# utilizan matrices basadas en 0. Para obtener más información, vea Matrices (Guía de programación de C#) y Información general sobre matrices en Visual Basic. |
Para obtener acceso al primer elemento de una colección en el modelo de objetos de una aplicación de Microsoft Office, utilice el índice 1 en lugar de 0. |
Para obtener acceso al primer elemento de una colección en el modelo de objetos de una aplicación de Microsoft Office, utilice el índice 1 en lugar de 0. |
Diferencias fundamentales entre el desarrollo de Office y el código administrado
En la tabla siguiente se muestran las diferencias principales entre el desarrollo de Office y el código administrado cuando se escribe en Visual Basic o C#.
Feature |
Descripción |
Compatibilidad con Visual Basic y C# |
---|---|---|
Índices de matriz |
Los límites de matriz inferiores de las colecciones de las aplicaciones de Microsoft Office comienzan en el 1. Visual Basic y Visual C# utilizan matrices basadas en 0. Para obtener más información, vea Matrices (Guía de programación de C#) y Información general sobre matrices en Visual Basic. |
Para obtener acceso al primer elemento de una colección en el modelo de objetos de una aplicación de Microsoft Office, utilice el índice 1 en lugar de 0. |
Vea también
Tareas
Cómo: Apuntar a las aplicaciones de Office mediante los ensamblados de interoperabilidad primarios
Cómo: Convertir objetos devueltos por aplicaciones de Office
Conceptos
Escribir código en soluciones de Office
Descripción de los parámetros opcionales en las soluciones de Office