Namespaces y directivas
Parte de la sección Programación Orientada a Objetos del Journey de C# de Coddy — lección 2 de 70.
Los espacios de nombres organizan su código y evitan conflictos de nombres. Agrupan clases relacionadas de la misma manera que las carpetas organizan los archivos.
Crea una clase dentro de un espacio de nombres
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}Utiliza una directiva using para acceder a clases de otro espacio de nombres
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}Salida:
AliceSin una directiva using, debe usar el nombre completo calificado
MyApp.Models.User user = new MyApp.Models.User("Bob");La directiva using le permite hacer referencia a tipos en un espacio de nombres sin escribir la ruta completa del espacio de nombres cada vez. System es un espacio de nombres común que contiene clases fundamentales como Console.
Desafío
IntermedioTienes una clase User en el espacio de nombres MyApp.Models. Añade la directiva using correcta en Program.cs para usar la clase User sin el nombre completo calificado.
Hoja de referencia
Los espacios de nombres organizan el código y evitan conflictos de nombres agrupando clases relacionadas.
Crea una clase dentro de un espacio de nombres:
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}Usa una directiva using para acceder a clases de otro espacio de nombres:
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}Sin una directiva using, usa el nombre completo:
MyApp.Models.User user = new MyApp.Models.User("Bob");El espacio de nombres System contiene clases fundamentales como Console.
Pruébalo tú mismo
using System;
// TODO: Agregar la directiva using para MyApp.Models
class Program
{
static void Main()
{
string userName = Console.ReadLine();
// TODO: Crear un objeto User usando userName
// TODO: Imprimir "User created: " seguido del Name del usuario
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Programación Orientada a Objetos
1Fundamentos de OOP
Archivos externosNamespaces y directivasIntro a clases y objetosLa palabra clave 'this'Métodos y parámetrosCampos vs PropiedadesConstructoresInicializadores de objetosResumen - Calculadora simple4Herencia
Sintaxis básica de herencia (:)La palabra clave 'base'Palabras clave Virtual y OverrideClases selladas (Sealed)La clase base 'object'Resumen: Jerarquía de empleados7Características avanzadas
Sobrecarga de operadoresIndexadores (this[])Sobrescritura de ToString()Métodos de extensiónResumen - Lista personalizada10Patrones de diseño - Parte 1
Introducción a los patrones de diseñoSingleton Thread-SafePatrón FactoryPatrón Observer (Eventos)Patrón Strategy2Propiedades y miembros estáticos
Propiedades autoimplementadasPropiedades de solo lectura y escrituraCampos y métodos estáticosClases estáticasMiembros con cuerpo de expresión5Polimorfismo e Interfaces
Polimorfismo: Compilación vs. EjecuciónInterfaz vs. Clase AbstractaInterfaces MúltiplesInterfaces ExplícitasUpcasting y DowncastingRepaso: Calculadora de Figuras8Conceptos avanzados de POO
Composición sobre herenciaGenéricos (clases y métodos)Delegados y eventosAtributos y ReflexiónIDisposable y la sentencia usingFundamentos de Inyección de dependencias11Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite3Arquitectura de clases
Datos de instancia vs. estáticosPalabras clave 'readonly' y 'const'Campos de respaldoResumen - Gestor de cuentas bancarias6Encapsulamiento
Modificadores de accesoPropiedades para el encapsulamientoImplementación de ocultamiento de datosPatrones de inmutabilidadRepaso - Registros de estudiantes