Arquivos Externos
Parte da seção Programação Orientada a Objetos do Journey de C# da Coddy — lição 1 de 70.
Arquivos externos permitem que você organize suas classes em arquivos C# separados e as referencie em seu programa principal usando namespaces.
Crie um arquivo C# separado chamado 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}";
}
}
}Referencie o namespace no seu arquivo principal
using MyApp;Crie uma instância e use-a
MyClass obj = new MyClass("Alice");
Console.WriteLine(obj.Greet());Saída:
Hello, I'm AliceA instrução using MyApp; permite que você use classes do namespace MyApp sem qualificá-las totalmente. O namespace agrupa classes relacionadas, e as classes devem ser public para serem acessíveis a partir de outros arquivos.
Desafio
MédioVocê recebeu arquivos C# (MyClass.cs e Program.cs), adicione uma instrução using no arquivo Program.cs para conectar os arquivos e usar a classe do arquivo externo!
Folha de consulta
Arquivos externos permitem que você organize classes em arquivos C# separados e as referencie usando namespaces.
Crie um arquivo C# separado com um namespace:
namespace MyApp
{
public class MyClass
{
public string Name { get; set; }
public MyClass(string name)
{
Name = name;
}
public string Greet()
{
return $"Hello, I'm {Name}";
}
}
}Referencie o namespace em seu arquivo principal usando a instrução using:
using MyApp;Crie uma instância e use-a:
MyClass obj = new MyClass("Alice");
Console.WriteLine(obj.Greet());
// Saída: Hello, I'm AliceAs classes devem ser public para serem acessíveis de outros arquivos. A instrução using permite que você use classes de um namespace sem qualificá-las totalmente.
Experimente você mesmo
// TODO: Substitua o ? pelo namespace correto para usar MyClass
using ?;
using System;
class Program
{
static void Main()
{
string testCase = Console.ReadLine();
// Cria uma instância de MyClass e chama GetMessage()
MyClass obj = new MyClass();
Console.WriteLine(obj.GetMessage());
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Fundamentos de POO
Arquivos ExternosNamespaces e DiretivasIntrodução a Classes e ObjetosA Palavra-chave 'this'Métodos e ParâmetrosCampos vs PropriedadesConstrutoresInicializadores de ObjetosRecapitulação - Calculadora Simples4Herança
Sintaxe Básica de Herança (:)A Palavra-chave 'base'Palavras-chave Virtual e OverrideClasses SeladasA Classe Base 'object'Recapitulação - Hierarquia de Funcionários7Recursos Avançados
Sobrecarga de OperadoresIndexadores (this[])Sobrescrita de ToString()Métodos de ExtensãoRecapitulação - Lista Personalizada10Padrões de Projeto Parte 1
Introdução aos Padrões de ProjetoSingleton Thread-SafePadrão FactoryPadrão Observer (Eventos)Padrão Strategy2Propriedades e Membros Estáticos
Propriedades AutoimplementadasPropriedades de Apenas Leitura/EscritaCampos e Métodos EstáticosClasses EstáticasMembros com Corpo de Expressão5Polimorfismo e Interfaces
Polimorfismo: Compilação vs ExecuçãoInterface vs Classe AbstrataMúltiplas InterfacesInterfaces ExplícitasUpcasting e DowncastingRecapitulação - Calculadora de Formas8Conceitos Avançados de POO
Composição sobre HerançaGenerics (Classes e Métodos)Delegates e EventosAtributos e ReflectionIDisposable e a Instrução usingFundamentos de Injeção de Dependência11Padrões de Projeto Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão Composite3Arquitetura de Classes
Dados de Instância vs EstáticosPalavras-chave 'readonly' e 'const'Campos de SuporteRecapitulação - Gerenciador de Conta Bancária6Encapsulamento
Modificadores de AcessoPropriedades para EncapsulamentoImplementação de Ocultação de DadosPadrões de ImutabilidadeRecapitulação - Registros de Estudantes9Argumentos Variáveis
A Palavra-chave 'params'Parâmetros OpcionaisArgumentos NomeadosSobrecarga de Métodos