- •Назначение платформы .Net Framework.
- •Версии платформы .Net
- •Общие концепции синтаксиса языка с#
- •Система типов clr и языка c#. Типы-значения и ссылочные типы
- •Система типов clr и языка c#. Преобразование типов
- •Идентификаторы, ключевые слова и литералы в языке c#
- •Допустимые элементы класса
- •Классы. Модификаторы доступа для элементов и типов
- •Классы. Использование класса
- •Методы. Описание метода. Вызов метода
- •Описание метода
- •Вызов метода
- •12, 13. Интерфейсы в языке c#. Объявление и реализация интерфейсов
- •14. Универсальные шаблоны. Универсальные классы и структуры
- •Универсальные классы и структуры
- •15. Универсальные шаблоны. Ограничения на параметры универсальных типов
- •16. Делегаты в языке с#
- •17. Анонимные методы и лямбда-выражения в языке c#
- •18. Понятие Пространства имен. Применяемые пространства имен в .Net.
- •19. Препроцессорные директивы
- •20. Создание проекта в Visual Studio. Интерфейс среды.
- •21. Настройка внешнего вида и поведения формы. Добавление элементов управления. Категории элементов.
- •22. Создание mdi-приложений. Главное и дочерние окна. Упорядочивание mdi-окон
- •23. Работа с текстовыми файлами. Запись, чтение, открытие, создание.
- •24, 25, 26 Сериализация объектов в .Net.
- •27. Жизненный цикл объектов. Алгоритм «сборки мусора» Жизненный цикл объектов
- •Сборщик мусора
- •28. Жизненный цикл объектов. Финализаторы
- •29. Xml. Правило построения xml-документов Понятие о языке xml
- •Простейший xml-документ
- •30. Создание, сохранение, загрузка xml Создание, сохранение, загрузка xml
- •31. Состав и взаимодействие сборок
- •32 Многопоточное программирование. Класс Thread. Основные свойства класса.
- •33 Многопоточное программирование. Пул потоков
- •34. Синхронизация потоков
- •35, 36, 37. Аспекты безопасности .Net
- •35 Аспекты безопасности .Net. Разрешение на доступ
- •36 Аспекты безопасности .Net. Изолированные хранилища
- •37 Аспекты безопасности .Net. Криптография
- •38. Работа с ключами реестра в .Net.
- •43. Методы доступа к субд.
- •44. Метод доступа ado .Net.
- •45 Работа с элементами управления DataSet.
- •46. Создание базы данных ms sql server.
- •47. Соединение с базой данных. Открытие и закрытие соединения с базой данных.
- •48. Адаптер SqlDataAdapter. Запросы sql.
- •49 Разработка Windows приложений с использованием com объектов
- •50. Работа с com сервером Excel. Запуск и закрытие Excel из приложения на c#. Создание рабочих книг
- •51 Работа с com сервером Excel. Вывод информации в ячейки Excel
- •52 Работа с com сервером Excel. Создание диаграмм
- •53 Работа с com сервером Word. Создание и сохранение документов
- •54 Работа с com сервером Word. Вывод текстовой информации
- •55 Работа с com сервером Word. Работа с таблицами
Система типов clr и языка c#. Преобразование типов
Поскольку в C# тип определяется статически во время компиляции, после объявления переменной, она не может быть объявлена вновь или использоваться для хранения значений другого типа, если этот тип не преобразуется в тип переменной. Например, невозможно преобразование из целого числа в произвольную строку.
Но иногда может быть необходимым скопировать значение в переменную или параметр метода другого типа. Например, может быть переменная, которую требуется передать методу, параметр которого имеет тип double. Или может понадобиться присвоить переменную класса переменной типа интерфейса. Операции такого вида называются преобразованиями типов. В C# можно выполнять следующие виды преобразований:
Неявные преобразования. Не требуется никакого специального синтаксиса, поскольку преобразование безопасно для типов и данные не теряются. Примерами могут служить преобразования от меньшего к большему целому типу, и преобразования из производных классов в базовые классы.
Явные преобразования (приведения). Для явных преобразований необходим оператор приведения. Приведение требуется, когда при преобразовании может быть потеряна информация, или когда преобразование может завершиться неудачей по другим причинам. К типичным примерам относится числовое преобразование в тип, который имеет меньшую точность или меньший диапазон значений, а также преобразование экземпляра базового класса в производный класс.
Пользовательские преобразования. Пользовательские преобразования выполняются специальными методами, которые можно определить для включения явных и неявных преобразований между пользовательскими типами, не имеющих отношения базовый класс — производный класс.
Преобразования с помощью вспомогательных классов. Для преобразования между несовместимыми типами, например целые числа и объектыSystem.DateTime, или шестнадцатеричные строки и байтовые массивы, можно использовать класс System.BitConverter, класс System.Convert и методы Parseвстроенных числовых типов, таких как Int32.Parse.
Идентификаторы, ключевые слова и литералы в языке c#
Идентификатор – это пользовательское имя для переменной, константы, метода или типа. В C# идентификатор – это произвольная последовательность букв, цифр и символов подчеркивания, начинающаяся с буквы, символа подчеркивания, либо символа @. Идентификатор должен быть уникальным внутри области видимости. Он не может совпадать с ключевым словом языка, за исключением того случая, когда используется специальный префикс @ (не являющийся частью идентификатора). Примеры допустимых идентификаторов: Temp, _variable, _, @class (используется префикс @, так как class – ключевое слово).
Ключевые слова ‑ это предварительно определенные зарезервированные идентификаторы, имеющие специальные значения для компилятора. Их нельзя использовать в программе в качестве идентификаторов. Далее приведены два списка ключевых слов. В первом списке перечислены ключевые слова, являющиеся зарезервированными идентификаторами в любой части программы C#:
-
do
in
protected
true
double
int
public
try
else
interface
typeof
break
byte
case
catch
Во втором списке перечислены контекстные ключевые слова. Они имеют особое значение только в ограниченном программном контексте и могут использоваться в качестве идентификаторов за пределами этого контекста, хотя так поступать не рекомендуется.
-
add
global
dynamic
group
from
into
get
join
Литерал – это последовательность символов, которая может интерпретироваться как значение одного из примитивных типов. Так как C# является языком со строгой типизацией, часто необходимо явно указать, к какому типу относится последовательность символов, определяющая данные.
7. Выражения и операции в языке C#
Любое выражение в языке C# состоит из операндов и операций. Следующий список содержит допустимые операции. Они разбиты на группы. Порядок групп соответствует приоритету операций (операции в каждой группе имеют одинаковый приоритет, за исключением группы логических операций, где они расположены в порядке убывания приоритета).
Основные (первичные) операции
x.m Доступ к элементу типа
x(...) Вызов методов и делегатов
x[...] Доступ к элементу массива или индексатора
x++ Постинкремент
x-- Постдекремент
new T(...) Создание объекта или делегата типа T
new T[...] Создание массива с элементами типа T
typeof(T) Получение для типа T объекта System.Type
checked(x) Вычисление в контролируемом контексте
Унарные операции
+x Идентичность
-x Отрицание
!x Логическое отрицание
~x Битовое отрицание
true(x) Возвращает логическое значение true для операнда
false(x) Возвращает логическое значение false для операнда
Мультипликативные операции
x * y Умножение
x / y Деление
x % y Вычисление остатка
Аддитивные операции
x + y Сложение чисел или конкатенация строк
x – y Вычитание
Операции сдвига
x << y Битовый сдвиг влево
x >> y Битовый сдвиг вправо
Операции отношения x < y Меньше
x > y Больше
x <= y Меньше или равно
x >= y Больше или равно
Операции равенства
x == y Равно
x != y Не равно
Операции присваивания
x = y Присваивание
x op= y Составное присваивание, поддерживаются операции
*= /= %= += -= <<= >>= &= ^= |=
8. Классы. Допустимые элементы класса
Класс является основным пользовательским типом. Синтаксис объявления класса в C# следующий:
<модификаторы> class <имя класса>
{
[<элементы класса>]
}
