Внешние файлы
Часть раздела Объектно-ориентированное программирование путешествия по C# на Coddy — урок 1 из 70.
Внешние файлы позволяют организовывать ваши классы в отдельных файлах C# и ссылаться на них в основной программе, используя пространства имен.
Создайте отдельный файл C# под названием 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}";
}
}
}Укажите ссылку на пространство имен в вашем основном файле
using MyApp;Создайте экземпляр и используйте его
MyClass obj = new MyClass("Alice");
Console.WriteLine(obj.Greet());Вывод:
Hello, I'm AliceИнструкция using MyApp; позволяет использовать классы из пространства имен MyApp без указания их полного имени. Пространство имен группирует связанные классы вместе, и классы должны быть public, чтобы быть доступными из других файлов.
Задание
СреднеВам даны файлы C# (MyClass.cs и Program.cs), добавьте оператор using в файл Program.cs, чтобы связать файлы и использовать класс из внешнего файла!
Шпаргалка
Внешние файлы позволяют организовывать классы в отдельных файлах C# и ссылаться на них с помощью пространств имен.
Создайте отдельный файл C# с пространством имен:
namespace MyApp
{
public class MyClass
{
public string Name { get; set; }
public MyClass(string name)
{
Name = name;
}
public string Greet()
{
return $"Hello, I'm {Name}";
}
}
}Сошлитесь на пространство имен в вашем основном файле, используя оператор using:
using MyApp;Создайте экземпляр и используйте его:
MyClass obj = new MyClass("Alice");
Console.WriteLine(obj.Greet());
// Вывод: Hello, I'm AliceКлассы должны быть public, чтобы быть доступными из других файлов. Оператор using позволяет использовать классы из пространства имен без указания их полного имени.
Попробуйте сами
// TODO: Замените ? на правильное пространство имен для использования MyClass
using ?;
using System;
class Program
{
static void Main()
{
string testCase = Console.ReadLine();
// Создайте экземпляр MyClass и вызовите GetMessage()
MyClass obj = new MyClass();
Console.WriteLine(obj.GetMessage());
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Внешние файлыПространства имен и директивыВведение в классы и объектыКлючевое слово 'this'Методы и параметрыПоля и свойстваКонструкторыИнициализаторы объектовИтоги — Простой калькулятор4Наследование
Основы синтаксиса наследования (:)Ключевое слово 'base'Ключевые слова Virtual и OverrideЗапечатанные классыБазовый класс 'object'Итоги — Иерархия сотрудников7Продвинутые возможности
Перегрузка операторовИндексаторы (this[])Переопределение ToString()Методы расширенияПовторение — Пользовательский список10Паттерны проектирования. Часть 1
Введение в паттерны проектированияПотокобезопасный SingletonПаттерн FactoryПаттерн Observer (События)Паттерн Strategy13Финальные испытания
Платформа для онлайн-обученияКомпонент игрового персонажаСервис аренды транспорта2Свойства и статические члены
Автоматически реализуемые свойстваСвойства только для чтения и записиСтатические поля и методыСтатические классыЧлены в виде выражений5Полиморфизм и интерфейсы
Полиморфизм: компиляция vs выполнениеИнтерфейс vs абстрактный классМножественные интерфейсыЯвные интерфейсыUpcasting и DowncastingИтоги: Калькулятор фигур8Продвинутые концепции ООП
Композиция вместо наследованияGenerics (классы и методы)Делегаты и событияАтрибуты и рефлексияIDisposable и оператор usingОсновы Dependency Injection11Паттерны проектирования. Часть 2
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн Компоновщик3Архитектура классов
Экземплярные и статические данныеКлючевые слова 'readonly' и 'const'Опорные поляПовторение — Менеджер банковских счетов6Инкапсуляция
Модификаторы доступаСвойства для инкапсуляцииРеализация скрытия данныхПаттерны неизменяемостиИтоги — Записи студентов9Переменное количество аргументов
Ключевое слово 'params'Необязательные параметрыИменованные аргументыПерегрузка методов