C# / C Sharp
es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET que después fue aprobado como un estándar por la ECMA (ECMA-334) . C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.
El nombre C Sharp fue inspirado por la notación musical, donde '#' (sostenido, en inglés sharp) indica que la nota (C es la nota do en inglés) es un semitono más alta, sugiriendo que C# es superior a C/C++. Además, el signo '#' se compone de cuatro signos '+' pegados.
Características de C#
- C# es un lenguaje de programación simple pero eficaz, diseñado para escribir aplicaciones empresariales.
- El lenguaje C# es una evolución de los lenguajes C y C++. Utiliza muchas de las características de C++ en las áreas de instrucciones, expresiones y operadores.
- C# presenta considerables mejoras e innovaciones en áreas como seguridad de tipos, control de versiones, eventos y recolección de elementos no utilizados (liberación de memoria).
- C# proporciona acceso a los tipos de API más comunes: .NET Framework, COM, Automatización y estilo C. Asimismo, admite el modo unsafe, en el que se pueden utilizar punteros para manipular memoria que no se encuentra bajo el control del recolector de elementos no utilizados.
Ventajas de C#
- Declaraciones en el espacio de nombres: al empezar a programar algo, se puede definir una o más clases dentro de un mismo espacio de nombres.
- Tipos de datos: en C# existe un rango más amplio y definido de tipos de datos que los que se encuentran en C, C++ o Java.
- Atributos: cada miembro de una clase tiene un atributo de acceso del tipo público, protegido, interno, interno protegido y privado.
- Pase de parámetros: aquí se puede declarar a los métodos para que acepten un número variable de parámetros. De forma predeterminada, el pase de parámetros es por valor, a menos que se use la palabra reservada re, la cual indica que el pase es por referencia.
- Métodos virtuales y re definiciones: antes de que un método pueda ser re-definido en una clase base, debe declararse como virtual. El método re-definido en la subclase debe ser declarado con la palabra devover
- Propiedades: un objeto tiene intrínsecamente propiedades, y debido a que las clases en C# pueden ser utilizadas como objetos, C# permite la declaración de propiedades dentro de cualquier clase.
- Inicializador: un inicializador es como una propiedad, con la diferencia de que en lugar de un nombre de propiedad, un valor de índice entre corchetes se utiliza en forma anónima para hacer referencia al miembro de una clase.
- Control de versiones: C# permite mantener múltiples versiones de clases en forma binaria, colocándoles en diferentes espacios de nombres. Esto permite que versiones nuevas y anteriores de software puedan ejecutarse en forma simultánea.
Desventajas de C#
- Las desventajas que se derivan del uso de este lenguaje de programación son que en primer lugar se tiene que conseguir una versión reciente de Visual Studio .NET, por otra parte se tiene que tener algunos requerimientos mínimos del sistema para poder trabajar adecuadamente tales como contar con Windows NT 4 o superior, tener alrededor de 4 gigas de espacio libre para la pura instalación, etc.
- Además para quien no está familiarizado con ningún lenguaje de programación, le costará más trabajo iniciarse en su uso, y si se quiere consultar algún tutorial más explícito sobre la programación en C# se tendría que contar además con una conexión a Internet.
Métodos
Un método es una acción que puede realizar un objeto.
Para definir un método de una clase:
Una clase puede tener varias implementaciones o sobrecargas del mismo método que se diferencian en el número de parámetros o de tipos de parámetro.
Para sobrecargar un método:
En la mayoría de los casos, un método se declara dentro de una definición de clase. Sin embargo, tanto Visual Basic como C# también admiten los métodos de extensión, que permiten agregar métodos a una clase existente fuera de la definición de la clase en sí.
Herencia
La herencia permite crear una nueva clase que reutiliza, extiende y modifica el comportamiento que se define en otra clase. La clase cuyos miembros se heredan se denomina clase base y la clase que hereda esos miembros se denomina clase derivada. Sin embargo, todas las clases de C# y Visual Basic heredan implícitamente de la clase Objeto que admite la jerarquía de clases .NET y proporciona servicios de bajo nivel a todas las clases.
Para heredar de una clase base:
Para especificar que una clase no se puede usar como clase base:
Para especificar que una clase se puede usar solo como clase base y no se pueden crear instancias de esta:
Comandos de C#
- If-else (Referencia de C#) Una instrucción if identifica que sentencia setiene que ejecutar en función del valor de una expresión Bolean.
- While (Referencia de C#) La instrucción while ejecuta una instrucción o un bloque de instrucciones repetidamente hasta que una expresión especificada se evalúa como false.
- Break (Referencia de C#) La instrucción break permite terminar el bucle envolvente más cercano o la instrucción switch en la cual aparece.
- Switch (Referencia de C#) Una instrucción switch incluye una o más secciones switch.
- Return (Referencia de C#) La instrucción return termina la ejecución del método en el que aparece y devuelve el control al método que realizó la llamada. También puede devolver un valor opcional. Si el método es del tipo void, la instrucción return se puede omitir.
- Throw (Referencia de C#) La instrucción throw se usa para indicar una situación anómala (excepción) durante la ejecución del programa. try-catch (Referencia de C#)
- try-catch consta de un bloque try seguido de una o más cláusulas catch, las cuales especifican controladores para diferentes excepciones.
- default (Referencia de C#) La palabra clave default se puede utilizar en la instrucción switch o en código genérico
- for (Referenciade C#) Mediante un bucle for , puede ejecutar una instrucción o un bloque de instrucciones varias veces hasta que una expresión especificada se evalúe con false.
- foreach, in (Referencia de C#) La instrucción foreach se utiliza para recorrer la colección en iteración y obtener la información deseada, pero no se puede utilizar para agregar o quitar elementos de la colección de origen, ya que se pueden producir efectos secundarios imprevisibles.
- do (Referencia de C#) La instrucción do ejecuta una instrucción o un bloque de instrucciones repetidamente hasta que una determinada expresión se evalúa como false.
- continue (Referencia de C#) La instrucción de continue pasa el control a la siguiente iteración de mientras que agrega, de haga, de para, o la instrucción de foreach en la que aparece.
Interpolación de cadenas en C#
- Interpolación de cadenas a vista de pájaro
Consiste en introducir valores de variables o expresiones en el interior de cadenas de texto sin usar los tradicionales mecanismos, molestos y propensos a errores, como la concatenación o el formateo con String. Format(). Y como un poco de código vale más que mil palabras, he ahí un ejemplo que creo ilustra bastante bien de qué estamos hablando:
Las cadenas interpoladas comienzan con el prefijo “$”, y pueden aparecer en los mismos lugares que una cadena de caracteres tradicional. Es decir, donde siempre hemos podido introducir una cadena de texto, podremos introducir ahora la nueva construcción
$"something". 2. Parámetros en cadenas interpoladas
Cuando el compilador de C# encuentra una cadena precedida por el símbolo “$” entenderá que es una cadena con interpolación, y creará el string resultante sustituyendo las expresiones contenidas entre llaves por su valor evaluado en el ámbito local.Por ejemplo, en la siguiente porción de código se muestra el uso correcto de la variable local
name y de la propiedad estática LastName, mientras que la propiedad age no puede referenciarse desde el método estático Main() por ser un miembro de instancia: Si queremos introducir los caracteres de apertura o cierre de llaves en alguna de estas cadenas, debemos escaparlos introduciéndolos dos veces consecutivas:
3. Intellisense, refactorings y errores en compilación
Visual Studio nos ayudará durante la codificación de estas cadenas gracias al soporte completo de intellisense en el interior de las expresiones interpoladas:También estos parámetros en el interior de las cadenas de texto serán sensibles a refactorizaciones. Por ejemplo, si en el código anterior renombramos la variable
name a fullName, el nuevo nombre será introducido también automáticamente en el interior de la cadena: 4.Los parámetros pueden ser objetos IFormattable
Si parámetros introducidos en una cadena interpolada son objetos Formattable, se invocará a su método ToString() para que sea él mismo el que se formatee: