Пространства имен и директивы
Часть раздела Объектно-ориентированное программирование путешествия по C# на Coddy — урок 2 из 70.
Пространства имен организуют ваш код и предотвращают конфликты имен. Они группируют связанные классы вместе, подобно тому, как папки организуют файлы.
Создайте класс внутри пространства имен
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}Используйте директиву using для доступа к классам из другого пространства имен
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}Вывод:
AliceБез директивы using вы должны использовать полное имя
MyApp.Models.User user = new MyApp.Models.User("Bob");Директива using позволяет ссылаться на типы в пространстве имен без необходимости каждый раз вводить полный путь к пространству имен. System — это распространенное пространство имен, содержащее базовые классы, такие как Console.
Задание
СреднеУ вас есть класс User в пространстве имен MyApp.Models. Добавьте правильную директиву using в Program.cs, чтобы использовать класс User без использования полного имени.
Шпаргалка
Пространства имен организуют код и предотвращают конфликты имен, группируя связанные классы вместе.
Создайте класс внутри пространства имен:
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}Используйте директиву using для доступа к классам из другого пространства имен:
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}Без директивы using используйте полное уточненное имя:
MyApp.Models.User user = new MyApp.Models.User("Bob");Пространство имен System содержит фундаментальные классы, такие как Console.
Попробуйте сами
using System;
// TODO: Добавьте директиву using для MyApp.Models
class Program
{
static void Main()
{
string userName = Console.ReadLine();
// TODO: Создайте объект User, используя userName
// TODO: Выведите "User created: ", а затем Name пользователя
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
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'Необязательные параметрыИменованные аргументыПерегрузка методов