Instrucciones de Control, Métodos, Clases y Objetos, Matrices y Cadenas de Caracteres.
Instrucciones de control.
Instrucciones de Control en Pseudocódigo. |
- La instrucción if-else es básicamente igual que en C, C++ y Java.
- La diferencia de la instrucción switch con la versión de C, C++ y Java es que todo cuerpo perteneciente a un case debe de toparse con un break o un goto antes de toparse con otro case, a menos que dicho cuerpo esté vacío.
- La instrucción for es básicamente igual que en C, C++ y Java.
- La instrucción while es básicamente igual que en C, C++ y Java.
- La instrucción do-while es básicamente igual que en C, C++ y Java.
- La instrucción foreach realiza un ciclo a través de los elementos de una colección (grupo de objetos). El formato de esta instrucción es: foreach(tipo variable in coleccion) instruccion;. En este ciclo se recorre la colección y la variable recibe un respectivo elemento de dicha colección en cada iteración.
- Al igual que en C y C++, la instrucción break permite forzar la salida de un ciclo omitiendo el código restante en el cuerpo del ciclo.
- Al igual que en C y C++, la instrucción continue permite forzar la repetición temprana de un ciclo omitiendo el código restante en el cuerpo del ciclo.
- La instrucción return es básicamente igual que en C, C++. Se utiliza para devolver un valor y salir de un método.
- La instrucción goto se sigue utilizando en C♯ a pesar de toda la polémica que esto conlleva.
Métodos
- Todo método debe de ser parte de una clase, no existen métodos globales.
- De forma predeterminada, los parámetros se pasan por valor (se copia dicho valor).
- El modificador ref fuerza a pasar los parámetros por referencia en vez de pasarlos por valor.
- El modificador out es similar al modificador ref con una excepción: sólo se puede utilizar para pasar un valor fuera de un método. El método debe de asignar un valor al parámetro antes de que el método finalice.
- Cuando ref y out modifican un parámetro de referencia, la propia referencia se pasa por referencia.
- El modificador params sirve para definir un número variable de argumentos los cuales se implementan como una matriz. Ejemplo: public int maxVal(params int[] nums){...}, esta función se podría llamar así: maxVal(23,3,a,-12);.
- Un método debe tener como máximo un único parámetro params y éste debe de ser el último.
- Un método puede devolver cualquier tipo de datos, incluyendo tipos de clase.
- Ya que en C# las matrices se implementan como objetos, un método también puede devolver una matriz (algo que se diferencia de C++ en que las matrices no son válidas como tipos de valores devueltos).
- C♯ implementa sobrecarga de métodos, dos o más métodos pueden tener el mismo nombre siempre y cuando se diferencien por sus parámetros.
- El método Main es un método especial al cual se refiere el punto de partida del programa. Tiene la siguiente sintaxis: public static int Main(string[] args){...}.
Clases y objetos
- Una variable de objeto de cierta clase no almacena los valores del objeto sino su referencia (al igual que Java).
- El operador de asignación no copia los valores de un objeto, sino su referencia a él (al igual que Java).
- Un constructor tiene el mismo nombre que su clase y es sintácticamente similar a un método.
- Un constructor no devuelve ningún valor.
- Al igual que los métodos, los constructores también pueden ser sobrecargados.
- Si no se especifica un constructor en una clase, se usa uno por defecto que consiste en asignar a todas las variables el valor de 0, null o false según corresponda.
- Para crear un nuevo objeto se utiliza la siguiente sintaxis: variable = new nombre_clase();.
- Un destructor se declara como un constructor, aunque va precedido por un signo de tilde ~.
- Se emplea una desasignación de memoria de objetos no referenciados (recolección de basura), y cuando esto ocurre se ejecuta el destructor de dicha clase.
- El destructor de una clase no se llama cuando un objeto sale del ámbito.
- Todos los destructores se llamarán antes de que finalice un programa.
- La palabra clave this es un apuntador al mismo objeto en el cual se usa.
- La palabra clave static hace que un miembro pertenezca a una clase en vez de pertener a objetos de dicha clase. Se puede tener acceso a dicho miembro antes de que se cree cualquier objeto de su clase y sin referencias a un objeto.
- Un método static no tiene una referencia this.
- Un método static puede llamar sólo a otros métodos static.
- Un método static sólo debe tener acceso directamente a datos static.
- Un constructor static se usa para inicializar atributos que se aplican a una clase en lugar de aplicarse a una instancia.
- C♯ permite la sobrecarga de operadores con la palabra clave operator
Matrices
En C♯ las matrices se implementan como objetos.
Para crear una matriz se utiliza el siguiente formato: tipo[] nombre_matriz = new tipo[tamaño];
Se puede crear una matriz inicializada así: tipo[] nombre_matriz = { val1 , val2 , val3 , ... , valN };
Los índices de las matrices comienzan en 0.
Para crear una matriz bidimensional se utiliza el siguiente formato: tipo[,] nombre_matriz = new tipo[filas,columnas]
Para referirse a un elemento de una matriz bidimensional no se usa la forma matriz[fila][columna] (la cual usa C++), si no matriz[fila,columna].
Ya que C♯ implementa matrices como objetos, cada matriz tiene asociada una propiedad Length que contiene el número de elementos que puede alojar cada matriz.
Cadenas de caracteres.
- El tipo de dato cadena se llama string.
- Realmente la palabra clave string es un alias de la clase System.String de la plataforma .NET.
- En C♯ las cadenas son objetos y no una matriz de caracteres, aun así, se puede obtener un carácter arbitrario de una cadena por medio de su índice (mas no modificarlo).
- La forma más común de construir una cadena es por medio de una literal o constante: string str = "Una cadena";
- El operador == determina si dos referencias hacen referencia al mismo objeto, pero al usar dicho operador con dos operandos tipo string se prueba la igualdad del contenido de las cadenas y no su referencia. Sin embargo, con el resto de los operadores relacionales, como < o >= se comparan las referencias.
- Se pueden concatenar (unir) dos cadenas mediante el operador +.
- Las cadenas son inmutables, una vez creadas no se pueden modificar, solo se pueden copiar total o parcialmente.
- Las cadenas se pueden usar en las instrucciones switch.
No hay comentarios:
Publicar un comentario