Tabla de Contenido
0. Introducción1. Problema
2. Solución
3. Discusión de la Solución
4. Práctica: Código C#
5. Uso de la Solución
6. Conclusiones
7. Glosario
8. Referencias
0. Introducción
Quizás haya sido experiencia de muchos el haber declarado (sin darnos cuenta) una variable o constante que creó conflicto con el nombre de una palabra clave del lenguaje de programación. En C# se presenta una solución a este conflicto de identificadores a través del símbolo @. La solución al problema de la receta se centra en el uso de esta construcción del lenguaje.
1. Problema
Un programador ha incluído una librearía que trae tipos y miembros que conflictan con las palabras claves del lenguaje C#.
2. Solución
El signo @ (también conocido como verbatim en C#) antepuesto (prefijo) en el identificador de un tipo o miembro permite resolver el conflicto.
[Nota: Para saber más acerca de este signo puede consultar [1] y en [2]]
3. Discusión de la Solución
Entre los lenguajes compatibles con el .NET Framework (o CLR-compliant) se pueden nombrar algunos como: Visual Basic .NET, F#, J#, C++. Cada uno de estos lenguajes de programación posee un conjunto definido de palabras claves (éstas difieren en cierta medida entre cada lenguaje). Lo anterior puede conducir a un programador de un lenguaje distinto a C# a utilizar una o varias palabras claves disponibles en éste último. Cuando el programador haya creado el componente y nos dispongamos a utilizarlo en una aplicación basada en C#, se generarán conflictos por los nombre de los identificadores de los tipos de datos y los miembros de éstos.
En el lenguaje C# el programador tiene disponible el signo @ para remover el conflicto que se crea entre identificadores de tipos, y miembros, y las palabras claves del lenguaje.
4. Práctica: Código C#
Antes de presentar el código fuente de C# de ejemplo, quiero hacer las siguientes aclaraciones:
- He utilizado el mismo lenguaje C# para crear los tipos de datos y miembros con identificadores que conflictan con los nombres de las palabras claves, desde luego, agregando el prefijo @ en cada uno.
- El aplicación cliente también estará escrita en lenguaje C#.
- Los nombres de los tipos y los miembros están en inglés dado que corresponden con las palabras claves del lenguaje.
El nombre del tipo @operator corresponde con la palabra clave operator [4]. Lo mismo ocurre con el miembro (propiedad) @volatile; sin el prefijo @ se sobrepondría con la palabra clave volatile [5].
Archivo C# AppClienteTelephony.cs [enlace alternativo]:
Nuevamente podemos ver en las líneas 12, 14, y 16 el uso del signo @ para remover el conflicto entre tipos (y miembros) y palabras reservadas de C#.
5. Uso de la Solución
5.1 Compilación
Para compilar el archivo Telephony.cs utilizamos el siguiente comando:
y el archivo AppClienteTelephony.cs de esta manera:
Luego tendremos estos archivos en el directorio de trabajo:
Figura 1. Archivos directorio de trabajo. |
5.2 Ejecución
6. Conclusiones
Hemos aprendido que en situaciones donde por una u otra razón alguna librería creada en otro lenguaje diferente incluye tipos y miembros de tipos que conflictan con las palabras reservadas de C# podemos recurrir al uso del prefijo (o signo) @ para remover este problema.
7. Glosario
- @
- CLR-compliant
- Verbatim
Enlaces & Literatura
[1]: Caracteres y Cadenas de Caracteres en C# - Parte 2 | Experiencias Construcción Software - http://ortizol.blogspot.com/2013/08/caracteres-y-cadenas-de-caracteres-en-c_29.html[2]: 2.4.4.5 String literals (C#) - http://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx
[3]: Visual C# 2010 Recibes by Allen Jones and Adam Freeman. Copyright 2010 Allen Jones and Adam Freeman, 978-1-4302-2525-6.
[4]: operator (C# Reference) - http://msdn.microsoft.com/en-us/library/s53ehcz3.aspx
[5]: volatile (C# Reference) - http://msdn.microsoft.com/en-us/library/x13ttww7.aspx
O
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.