Fragmentos de código y cómo usarlos
Los fragmentos de código son pequeños bloques de código reutilizable que se pueden agregar en un archivo de código. Los fragmentos de código suelen contener bloques de código usados con frecuencia, como bloques Try...Finally
o If...Else
. También puede usar fragmentos de código para agregar clases o métodos completos.
Un fragmento de código tiene un título que se usa para seleccionar el fragmento de código y puede tener un nombre de acceso directo que puede escribir para insertar el fragmento de código. Los fragmentos de código también pueden contener parámetros de reemplazo, que actúan como marcadores de posición. Existen fragmentos de código disponibles para muchos lenguajes, como C#, C++ y Visual Basic.
Fragmentos de código de expansión y fragmentos de código envolventes
Puede añadir dos tipos de fragmentos de código al código:
- Un fragmento de código de expansión se añade en un punto de inserción especificado.
- Se agrega un fragmento de código envolvente alrededor del código seleccionado y solo está disponible para C# y C++.
Dónde encontrar fragmentos de código disponibles
Para ver los fragmentos de código disponibles para un lenguaje, seleccione Herramientas>Administrador de fragmentos de código en la barra de menús o presione Ctrl+K, B y, a continuación, seleccione el lenguaje que desee en el menú desplegable.
Para crear e importar su propio fragmento de código para que aparezca en la lista de fragmentos de código, vea Tutorial: Creación de un fragmento de código en Visual Studio.
Agregar un fragmento de código al archivo de código
Para agregar un fragmento de código al archivo de código:
En el editor de código, coloque el cursor o seleccione Código de C# o C++ donde quiera agregar el fragmento de código.
Realice una de las siguientes acciones:
- En la barra de menús de Visual Studio, elija Editar>IntelliSense>Insertar fragmento de código o Editar>IntelliSense>Delimitar con.
- Haga clic con el botón derecho y elija Fragmento de código>Insertar fragmento de código o Fragmento de código>Delimitar con en el menú contextual.
- En el teclado, presione Ctrl+K, X para un fragmento de código de expansión o Ctrl+K, S para un fragmento de código envolvente.
Haga doble clic en el fragmento de código que desee en la lista desplegable, o escriba el acceso directo del fragmento de código y presione Tab o Entrar.
Adición de un fragmento de código de expansión
Por ejemplo, el fragmento de código de expansión de C# tryf
agrega el siguiente bloque Try...Finally
:
try
{
}
finally
{
}
Para agregar este fragmento de código de expansión:
- En el editor de código, coloque el cursor donde desea agregar el fragmento de código.
- Haga clic con el botón derecho y seleccione Insertar fragmento de código en el menú contextual, o bien use la barra de menús o los comandos de teclado.
- Abra la carpeta Visual C# y, a continuación, haga doble clic en tryf en la lista desplegable, o seleccione tryf y presione Tab o Entrar.
Sugerencia
También puede colocar el cursor en el punto de inserción, escribir tryf y, a continuación, presionar Tab dos veces.
Agregar un fragmento de código Delimitar con
En el ejemplo de código siguiente de un fragmento de código de C++, se puede utilizar el acceso directo if
como un fragmento de código de inserción o como un fragmento de código Delimitar con. Si selecciona una línea de código return FALSE;
y, después, selecciona Delimitar con>if, el fragmento de código se expandirá alrededor de la línea.
if (true)
{
return FALSE;
}
Parámetros de reemplazo de fragmentos de código
Los fragmentos de código pueden contener parámetros de reemplazo, que son marcadores de posición que debe reemplazar para incluir el código que está escribiendo. En el ejemplo anterior, true
es un parámetro de reemplazo, que podría reemplazar por la condición adecuada. El reemplazo se repetirá para cada instancia del mismo parámetro de reemplazo en el fragmento de código.
Por ejemplo, en Visual Basic hay un fragmento de código que define una propiedad. Para insertar el fragmento de código:
- En el menú contextual de un archivo de código de Visual Basic, seleccione Fragmento de código>Insertar fragmento de código.
- Seleccione Patrones de código>Propiedades, procedimientos, eventos>Definir una propiedad.
Se inserta el siguiente código:
Private newPropertyValue As String
Public Property NewProperty() As String
Get
Return newPropertyValue
End Get
Set(ByVal value As String)
newPropertyValue = value
End Set
End Property
Si cambia newPropertyValue
por m_property
, se cambian todas las instancias de newPropertyValue
. Si cambia String
por Int
en la declaración de la propiedad, también se cambia a Int
el valor en el método Set
.
Procedimientos recomendados para usar fragmentos de código
El código de un fragmento de código muestra solo la forma más sencilla de hacer algo. Para la mayoría de las aplicaciones, el código debe modificarse para adaptarlo a la aplicación.
Control de excepciones
Normalmente, los bloques Try...Catch
de fragmento de código detectan y vuelven a iniciar todas las excepciones, pero es posible que no sea la opción adecuada para el proyecto. Para cada excepción, hay varias formas de responder. Para obtener ejemplos, vea Cómo controlar una excepción mediante Try y Catch (C#) e Instrucción Try...Catch...Finally (Visual Basic).
Ubicaciones de archivo
Al adaptar ubicaciones de archivos a la aplicación, asegúrese de tener en cuenta los siguientes factores.
Encontrar una ubicación accesible. Es posible que los usuarios no tengan acceso a la carpeta Archivos de programa del equipo, por lo que puede que no sirva almacenar archivos de usuario con los archivos de aplicación.
Encontrar una ubicación segura. Almacenar archivos en la carpeta raíz como C:\ no es seguro. Para los datos de la aplicación, es mejor usar la carpeta Datos de aplicación. Para los datos de usuarios individuales, la aplicación puede crear un archivo en la carpeta Documentos de cada usuario.
Usar un nombre de archivo válido. Puede usar los controles OpenFileDialog y SaveFileDialog para reducir la probabilidad de nombres de archivo no válidos.
Tenga en cuenta que un archivo seleccionado por el usuario podría eliminarse antes de que el código pueda manipular el archivo. Además, es posible que un usuario no tenga permiso para escribir en el archivo.
Seguridad
El nivel de seguridad de un fragmento de código depende de dónde se usa en el código fuente y cómo se modifica una vez que está en el código. La lista siguiente contiene algunas de las áreas que deben tenerse en cuenta:
- Acceso de base de datos y archivo
- Seguridad de acceso del código
- Protección de recursos como registros de eventos y registro
- Almacenamiento de secretos
- Comprobación de entradas
- Paso de datos a tecnologías de scripting
Para obtener más información, consulte Proteger aplicaciones.
Fragmentos de código descargados
Los fragmentos de código instalados por Visual Studio no constituyen por sí mismos un peligro para la seguridad. En cambio, pueden crear riesgos de seguridad en la aplicación. Los fragmentos de código descargados de Internet deben tratarse como cualquier otro contenido descargado: con extrema precaución. Descargue fragmentos solo de sitios de confianza y use software antivirus actualizado.
Abra todos los archivos de fragmento de código descargados en el Bloc de notas o el editor XML de Visual Studio y examínelos detenidamente antes de instalarlos. Tenga cuidado con los siguientes problemas:
El fragmento de código podría dañar el sistema si lo ejecuta. Lea detenidamente el código fuente antes de ejecutarlo.
HelpURL
bloquea los archivos de fragmento de código que contienen direcciones URL que ejecutan archivos de script malintencionados o muestran sitios web ofensivos.Fragmentos de código que contienen referencias que se agregan automáticamente al proyecto y se pueden cargar desde cualquier lugar del sistema. Puede descargar estas referencias desde la misma ubicación desde la que se descarga un fragmento de código. El fragmento de código puede realizar una llamada a un método en la referencia que ejecuta código malintencionado. Para detectar estas referencias, revise los bloques
Imports
yReferences
del archivo de fragmento de código.