Ya he acabado de leer los pdfs, estas son las cosas mas importantes que he encontrado y difieren de lo que ya sabiamos:
– convert para castings (tambien funciona (int))
Ejemplo: double angulo = Convert.ToDouble(entero); //siendo int entero;
Ejemplo: Button buttonEmisor = (Button)emisor; //siendo Object emisor;
– foreach
Ejemplo: foreach(string disco in discosLogicos) { } //siendo discosLogicos un vector de strings
Ejemplo: int[10] vector; foreach(int a in vector) { } //recorrido del vector de principio a fin sin iteradores
– setters y getters (propiedades)
Ejemplo: public string Nombre { get{return nombre;} set{nombre = value;} } //siendo string nombre; un atributo privado, explicacion de value abajo
Ejemplo: a.Nombre = «yo»; string b = a.Nombre; //ejemplos de llamadas a set y get respectivamente. «yo» seria el objeto «value» asignado en el set
– herencia con :
Ejemplo: public class MiClase : ClaseBase { } //siendo public class ClaseBase { } la superclase
– interface con :
Ejemplo: public class MiClase : Interfaz { } //siendo interface Interfaz { } una clase interface
– namespaces (package en java). Se usa para acceder si se empaqueta en un .dll
Ejemplo: namespace Proyecto1{ public class Hola { } }
Ejemplo: using Proyecto1; Proyecto1.Hola a = new Proyecto1.Hola(); //ejemplos de carga del namespace y llamada al constructor (si no se ha cargado) respectivamente
– Console.WriteLine(«{0}», parametro); para salida estandar, similar a c; tambien funciona Console.WriteLine(cadena) siendo string cadena; tambien existe Console.Write, el cual no hace salto de linea
Ejemplo: Console.WriteLine(«Me llamo {0} y soy {1}», nombre, caracteristica); //siendo {0} el primer parametro (nombre) y {1} el segundo (caracteristica)
Ejemplo: «Me llamo Cerb y soy osom» //ejemplo de ejecucion con nombre = «Cerb» y caracteristica = «osom»
– para sobreescribir metodos si a priori no se sabe k se van a redefinir -> usar «new» entre public y el tipo en la cabecera de la funcion (clase derivada)
Ejemplo: public new metodo () { } //siendo metodo() un metodo heredado que se definio normal en su clase
– si se sabe entonces -> declarar metodos como «virtual» para marcar k seran redefinidos (clase base), al sobreescribir se pondra «override», siempre entre public y el tipo en la cabecera
Ejemplo: public virtual metodo() { } //implementacion del metodo metodo() en la clase base
Ejemplo: public override metodo() { } //sobreescritura del metodo metodo() heredado de la clase base, el cual se sabia que se podia sobreescribir
– palabra reservada «base» para hacer referencia a la clase base (como el this hace referencia a la clase en uso) (equivalente a super en java)
Ejemplo: public class ClaseBase { string atrib; } //estructura de la clase base
Ejemplo: public class MiClase : ClaseBase { MiClase() { string a = base.atrib; } } //llamada al atributo atrib de la clase base
– eventos: cada componente(button, textbox, etc) tendra una propiedad para asignarle un manejador de eventos
Ejemplo: buttonAceptar.Click += new EventHandler(ButtonAceptarClick); //siendo Button buttonAceptar; se le asigna un manejador al evento click
– eventos: en la misma clase habra un metodo que maneje el evento generado
Ejemplo: static void ButtonAceptarClick(object sender, EventArgs e) { } //implementacion del evento click, puede llamarse desde varios componentes
– palabra reservada «partial» en la cabecera de la clase para implementar la clase en varios archivos, se usa para dividir diseño de componentes de la logica
Ejemplo: public partial class MiClase { MiClase() { Button a = new Button(); } } //parte que genera componentes y propiedades (como los layouts en xml)
Ejemplo: public partial class MiClase { } //parte que implementa la logica de dichos componentes y otras funciones