- •1 Концепция структурного программирования. Причины появления концепции. Модульность и функции. Ограничения на логические конструкции. Использование оператора goto.
- •Теорема о структурном программировании (Теорема Бёма — Якопини)
- •3 Платформа .Net Framework. Многоязыковое программирование. Кроссплатформенность по. Web-ориентированные приложения.
- •Преимущества технологии динамической компиляции
- •5 Построение приложения Windows в интегрированной среде программирования
- •6 Основные типы данных
- •7 Символы и строки. Символы, строки и массивы строк. Операции над строками
- •8 Структура программы на языке c#. Понятие пространства имен. Иерархия пространств имен. Видимость имен.
- •9 Операторы. Основные языка с#. Арифметические и логические операторы. Бинарные и унарные операторы. Составные операторы. Понятие перегрузки операторов.
- •10 Выражения. Приоритет и ассоциативность операторов. Порядок вычисления выражения.
- •11 Преобразования типов. Иерархия численных типов. Явное и неявное преобразование типов. Возможные ошибки.
- •12 Тема: Модификаторы доступа языка c#. Необходимые знания: Назначение и функции модификаторов private, public, protected, internal, protected internal, private protected.
- •13 Выбор вариантов.
- •If (Условие)
- •14 Циклы.
- •15 Классы памяти
- •16 Функции в языке с#
- •17 Массивы. Создание и инициализация. Ссылки на массив. Двухмерные и многомерные массивы. Инициализация массивов. Невыровненные массивы.
- •18 Понятие класса. Определение класса и экземпляр класса. Данные и методы. Ключевое слово partial.
- •19 Создание объекта класса.
- •20 Деструкторы и «сборка мусора». Оператор «new». Резервирование и освобождение памяти. Деструкторы и «сборка мусора».
- •21 Полиморфизм и перегрузка операторов. Перегрузка унарных и бинарных операторов. Семантика перегрузки операторов в с#.
- •Понятие полиморфизма и шаблоны. Назначение и преимущества использования шаблонов. Параметры универсального типа.
- •23 Свойства c# (Понятие инкапсуляции и свойства в c#. Использование ключевых слов «get» и «set». Преимущества использования свойств.)
- •24 Механизм исключений (Назначение исключений. Основные категории исключений. Ключевые слова try, catch и finally, throw.)
- •25 Наследование в c#. Понятие наследования в c#. Механизм наследования. Базовый и производный классы. Наследование и модификаторы доступа.
8 Структура программы на языке c#. Понятие пространства имен. Иерархия пространств имен. Видимость имен.
Понятие
Пространство имен (namespace) в C# представляет собой некий контейнер для логического объединения именованных сущностей, таких как классы, интерфейсы, перечисления и тому подобное.
Используется для объявления области действия, которая содержит набор связанных объектов. Пространство имен можно использовать для организации элементов кода и для создания глобально уникальных типов.
Объявления пространств имен с областью действия файла позволяют объявить, что все типы в файле находятся в одном пространстве имен.
Пространства имен часто используются в программировании на C# двумя способами.
Первый способ — .NET использует пространства имен для упорядочения множества ее классов следующим образом:
System.Console.WriteLine("Hello World!");
System является пространством имен, а Console — это класс в нем. Ключевое using слово можно использовать, чтобы полное имя не требовалось, как показано в следующем примере:
using System;
Console.WriteLine("Hello World!");
Второй способ — объявление собственных пространств имен поможет вам контролировать область имен классов и методов в более крупных проектах. Используйте ключевое слово namespace, чтобы объявить пространство имен, как показано в следующем примере:
namespace SampleNamespace
{
class SampleClass
{
public void SampleMethod()
{
System.Console.WriteLine(
"SampleMethod inside SampleNamespace");
}
}
}
Пространства имен имеют следующие свойства:
Они помогают упорядочивать проекты с большим объемом кода.
Они разделяются с помощью . оператора. (оператор в виде точки)
Директива using позволяет не указывать название пространства имен для каждого класса.
Пространство имен global является корневым: global::System всегда будет ссылаться на пространство имен System в .NET.
Видимость и иерархия
Имена (названия типов) объявленные во внешнем пространстве имен могут использоваться во внутреннем пространстве без указания полного уточненного имени.
namespace Outer
{
class Class1 {}
namespace Inner
{
class Class2 : Class1 {}
}
}
Если необходимо сослаться на другую ветвь в иерархии пространств имен, нужно использовать частично уточненное имя (partially qualified name).
namespace MyTradingCompany
{
namespace Common
{
class ReportBase {}
}
namespace ManagementReporting
{
class SalesReport : Common.ReportBase {} // Частично уточненное имя
}
}
Сокрытие имен: Если внутреннее и внешнее пространства имен содержат объявление типов с одинаковыми именами, то при использовании во внутреннем пространстве имен предпочтение будет отдано внутреннему типу. Чтобы сослаться на тип из внешнего пространства, необходимо использовать полное уточненное имя.
9 Операторы. Основные языка с#. Арифметические и логические операторы. Бинарные и унарные операторы. Составные операторы. Понятие перегрузки операторов.
Оператор – встроенный в язык способ взаимодействия переменных.
Основные операторы (Здесь речь либо про перечисление типов, либо про отдельную и очень условную категорию. Если первый вариант, что более вероятно, то всё это представлено в заголовке вопроса. Если второй вариант, что менее вероятно, но упомяну на всякий случай, то можно сказать, что есть отдельная очень условная категория, которая по порядку выполнения операций стоит самой первой. К примеру, обращение к элементу массива типа a[i], операции автоинкремента ++ или использование тега new при переопределении значения переменной будет основным оператором. Их там много, но достаточно знать, что любое обращение к переменным внутри переменных, операции авто+ и авто- и использование тегов при определении переменной будет в большинстве случаев основным оператором.):
Арифметические – операторы стандартных математических операций с числовыми и другими переменными. + – сложение, - – вычитание, * – умножение, / – деление, % – деление по модулю, ++ – инкремент, -- – декремент.
Логические и условные – операторы для работы с переменными типа bool. & – И, | – ИЛИ, ^ – исключающее ИЛИ, ! – НЕ, && – укороченное И для условных конструкций, || – укороченное ИЛИ для условных конструкций, ==/!=/>/</>=/<= – все операторы сравнения для условных конструкций.
Унарные – операторы для действий с одной переменной. +/- – присвоение переменной знака +/-, ++/-- – инкремент и декремент, ! – НЕ.
Бинарные – операторы для действий с двумя переменными. Все другие операторы, которые не являются унарными, например, + как сложение двух переменных.
Составные операторы – операторы укороченной записи, представляемые как аналог арифметической или логической операции с переменной и единицей. +=/-=/*=//= – арифметические операции типа (х = х знак 1), |= – логическое ИЛИ с 1, ^= – логическое исключающее ИЛИ с 1, op= логическое присваивание типа (х = х op у).
Перегрузка операторов – доступный для ряда операторов способ определения действий при возникновении в коде выбранного оператора. Если проще, то перегрузка операторов нужна для того, чтобы реализовывать ситуации типа (массив1 + массив2 = поэлементная сумма элементов массива). Если нужно сделать так, чтобы использование определённого оператора выполняло какие-то нестандартные для этого оператора действия, можно перегрузить переменную и получить перегрузку. При выполнении операций сначала проверяются пользовательские перегрузки, а при их отсутствии используются стандартные инструкции по выполнению операций.