Fundamentos Esenciales de .NET y C#: CLR, POO, Tipos de Datos y Estructuras
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,45 KB
Plataforma .NET: Fundamentos y Componentes Clave
Plataforma de desarrollo de software con énfasis en la transparencia de redes, con independencia de la plataforma de hardware, que permite un rápido desarrollo de aplicaciones.
Componentes Principales de .NET
- Lenguajes de Programación (VB, VC++, C#, etc.)
- Common Language Specification (CLS)
- Bibliotecas de Clases Base (ASP.NET, ADO.NET)
- Common Language Runtime (CLR)
Common Language Runtime (CLR)
Es el motor de todo .NET. Se encarga de volver a compilar el código intermedio (IL) del ensamblado para generar código nativo. Esta compilación la realiza el compilador Just-In-Time (JIT).
Lenguaje Intermedio (IL)
Lenguaje intermedio común a todos los sistemas que soporten .NET Framework. El IL es el lenguaje que resulta de la compilación del código de cualquier lenguaje de .NET. Sigue las especificaciones dictadas por el CLS. La compilación de un programa en lenguaje de .NET crea un ensamblado en el que las instrucciones están escritas en IL.
Especificación Común de Lenguajes (CLS)
Conjunto de reglas básicas que deben cumplir los lenguajes que pretenden generar código intermedio de .NET.
Desarrollo Web y Estructura de Código
ASP.NET
Parte de la plataforma .NET diseñada para el desarrollo de aplicaciones web. Construido sobre el CLR, permite a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por .NET Framework.
Namespaces (Espacios de Nombres)
Permiten organizar los identificadores globales en una estructura jerárquica. Controlan el ámbito de las clases y nombres de métodos en proyectos grandes, evitando conflictos de nombres.
Utilizando la palabra reservada using se indican los espacios de nombres que se van a utilizar en el código para evitar anteponer esos nombres de espacios.
Propiedades
Son miembros que ofrecen un mecanismo flexible para leer (get) o escribir (set) los valores de campos privados.
Conceptos Fundamentales de Programación Orientada a Objetos (POO) en C#
Polimorfismo
Posibilidad de que varios métodos o atributos con el mismo nombre se comporten de forma diferente.
- Si están en la misma clase, se diferencian en los parámetros (sobrecarga).
- Si están en dos clases diferentes, pueden ser idénticos (sobrescritura/herencia).
Ejemplo: visualiza(a) y visualiza().
Constructor
Método miembro de una clase que se ejecuta automáticamente en el momento de crear un objeto. Se utiliza para inicializar las variables miembro del objeto creado.
Los constructores de una clase que hereda de otra deben hacer una llamada a algún constructor de su clase base. Esto se realiza mediante la palabra reservada base.
Método Virtual y Sobrescritura
Método que puede ser redefinido utilizando el mismo identificador en una clase hija de aquella en la que se declara. El método virtual de la clase base puede tener un comportamiento y el método que lo redefine en la clase hija, otro (polimorfismo).
El método que finalmente se ejecutará dependerá del tipo de objeto sobre el que se realice la llamada.
- El método virtual se marca con la palabra reservada virtual.
- La redefinición de un método virtual debe ir marcada con la palabra override.
Clase Abstracta
Aquella clase que contiene uno o varios métodos abstractos. Un método abstracto es aquel que solo está declarado (y no implementado) en una clase, y será necesario definirlo en una clase derivada de la clase abstracta.
- Para declarar un método abstracto se marca con la palabra abstract.
- Cuando se define en una clase derivada se marca con override.
Interfaces
Similares a las clases abstractas. Mientras que una clase derivada solo puede recibir herencia de una única clase base, una clase puede implementar varios interfaces.
Miembros Protegidos (Protected)
Los miembros privados de la clase base se pueden utilizar en las clases derivadas marcándolos con protected.
Tipos de Datos en C#: Valor vs. Referencia
Tipos Valor
Se corresponden a las estructuras del lenguaje C, con la posibilidad de añadir código en forma de métodos. Al asignar un tipo valor a otro, se copia el valor.
Ejemplo de estructura (struct):
struct EstructuraPunto {
public double x, y;
}
class Programa {
static void Main () {
EstructuraPunto a, b;
a.x = 1.0;
a.y = 2.0;
b = a; // Se copia el valor de la estructura 'a' en la estructura 'b'.
}
}Tipos Referencia
Se utilizan para crear objetos dinámicamente en el heap mediante el operador new. Se obtiene una referencia (equivalente a un puntero en lenguaje C) al objeto creado.
Ejemplo de clase (class):
class ClasePunto {
public double x, y;
}
class Programa {
static void Main () {
ClasePunto a;
ClasePunto b;
a = new ClasePunto();
b = new ClasePunto();
a.x = 1.0;
a.y = 2.0;
b = a; // Hace que la referencia 'b' apunte al mismo objeto que 'a'.
}
}