Archivos externos
Parte de la sección Programación Orientada a Objetos del Journey de C# de Coddy — lección 1 de 70.
Los archivos externos te permiten organizar tus clases en archivos de C# separados y referenciarlos en tu programa principal usando espacios de nombres.
Crea un archivo C# independiente llamado MyClass.cs
namespace MyApp
{
public class MyClass
{
public string Name { get; set; }
public MyClass(string name)
{
Name = name;
}
public string Greet()
{
return $"Hello, I'm {Name}";
}
}
}Referencia el espacio de nombres en tu archivo principal
using MyApp;Crea una instancia y úsala
MyClass obj = new MyClass("Alice");
Console.WriteLine(obj.Greet());Resultado:
Hello, I'm AliceLa sentencia using MyApp; le permite utilizar clases del espacio de nombres MyApp sin calificarlas completamente. El espacio de nombres agrupa clases relacionadas, y las clases deben ser public para ser accesibles desde otros archivos.
Desafío
IntermedioSe te proporcionan archivos C# (MyClass.cs y Program.cs), ¡añade una sentencia using en el archivo Program.cs para conectar los archivos y usar la clase del archivo externo!
Hoja de referencia
Los archivos externos le permiten organizar clases en archivos C# separados y hacer referencia a ellos mediante espacios de nombres.
Cree un archivo C# separado con un espacio de nombres:
namespace MyApp
{
public class MyClass
{
public string Name { get; set; }
public MyClass(string name)
{
Name = name;
}
public string Greet()
{
return $"Hello, I'm {Name}";
}
}
}Haga referencia al espacio de nombres en su archivo principal utilizando la sentencia using:
using MyApp;Cree una instancia y utilícela:
MyClass obj = new MyClass("Alice");
Console.WriteLine(obj.Greet());
// Salida: Hello, I'm AliceLas clases deben ser public para ser accesibles desde otros archivos. La sentencia using le permite utilizar clases de un espacio de nombres sin calificarlas completamente.
Pruébalo tú mismo
// TODO: Reemplaza el ? con el espacio de nombres correcto para usar MyClass
using ?;
using System;
class Program
{
static void Main()
{
string testCase = Console.ReadLine();
// Crea una instancia de MyClass y llama a GetMessage()
MyClass obj = new MyClass();
Console.WriteLine(obj.GetMessage());
}
}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