- •Введение в язык c# и .Net Framework
- •Язык c#
- •Архитектура платформы .Net Framework
- •Создание первого приложения c#
- •Создание приложения c#
- •Создание консольного приложения c#
- •Создание приложений Windows Forms на c#
- •Создание приложения wpf c#
- •Создание обработчиков событий
- •Создание пользовательского интерфейса в Visual c#
- •Добавление элементов управления
- •Задание свойств
- •Обработка событий
- •Использование элемента управления "Button"
- •Использование кнопок в программе
- •Программный вызов события нажатия кнопки
- •Использование кнопок в программе
- •Создание группы переключателей из массива строк
- •Компиляция кода
- •Создание непрямоугольной кнопки
- •Компиляция кода
- •Отображение текста в форме Windows Forms
- •Отображение текста в надписи
- •Использование элемента управления "TextBox" для получения вводимых данных
- •Извлечение введенных в текстовое поле данных
- •Установка выделения текста в элементе управления "TextBox"
- •Компиляция кода4
- •Надежное программирование
- •Загрузка текста в элемент управления "RichTextBox"
- •Компиляция кода
- •Диалоговые окна Извлечение данных из диалогового окна
- •Создание основной формы приложения
- •Создание диалогового окна
- •Извлечение данных из диалогового окна
- •Просмотр папки
- •Отображение диалогового окна обозревателя папок
- •Сохранение файла в папку
- •Отображение диалогового окна обозревателя папок
- •Отображение списка шрифтов
- •Отображение диалогового окна выбора шрифта
- •Динамическое отображение компонента OpenFileDialog
- •Компиляция кода
- •Надежное программирование
- •Отображение цветовой палитры
- •Отображение диалогового окно выбора цвета
- •Добавление и удаление элементов в элементе управления "ListBox"
- •Компиляция кода
- •Определение выбранных элементов в элементе управления "ListBox"
- •Компиляция кода
- •Заполнение элемента управления "ListBox" массивом строк
- •Компиляция кода
- •Надежное программирование
- •Поиск элемента в элементе управления "ListBox"
- •Компиляция кода
- •Извлечение даты в элементе управления "DateTimePicker"
- •Компиляция кода
- •Отображение времени в надписи
- •Компиляция кода
- •Отображение даты и времени в приложении
- •Отображение даты с помощью элемента управления "MonthCalendar"
- •Отображение времени с помощью элемента управления "DateTimePicker"
- •Определение интервала между двумя датами
- •Компиляция кода
- •Создание настраиваемого пользовательского интерфейса
- •Добавление панелей инструментов в приложение Windows Forms
- •Добавление набора стандартных кнопок панели инструментов
- •Создание всплывающей подсказки для элемента управления
- •Компиляция кода13
- •Создание контекстного меню и присоединение его к элементу управления
- •Компиляция кода14
- •Добавление элементов управления Windows Forms во время выполнения
- •Компиляция кода15
- •Чтение xml из файла
- •Пример18
- •Компиляция кода
- •Надежное программирование
- •Чтение данных класса из xml-файла
- •Пример19
- •Компиляция кода
- •Надежное программирование
- •Рисование текста и графики
- •Отрисовка текста в форме
- •Компиляция кода
- •Надежное программирование
- •Изменение цвета текста в элементе управления Windows Forms
- •Пример21
- •Компиляция кода
- •Рисование кривой в форме
- •Компиляция кода
- •Надежное программирование
- •Рисование контурных фигур
- •Пример23
- •Компиляция кода
- •Надежное программирование
- •Добавление файлов мультимедиа в приложение
- •Внедрение проигрывателя Windows Media в форму
- •Добавление элемента управления "Windows Media Player" в панель элементов.
- •Добавление элемента управления "Windows Media Player" в форму Windows Forms
- •Воспроизведение звука в приложении
- •Воспроизведение аудиофайла
- •Создание и использование точечных рисунков и значков
- •Создание точечного рисунка во время выполнения
- •Компиляция кода
- •Надежное программирование
- •Преобразование изображений из одного формата в другой
- •Пример28
- •Компиляция кода
- •Получение значения из другой формы
- •Пример29
- •Компиляция кода
- •Создание приложений wpf
- •Создание пользовательского интерфейса для приложения wpf
- •Создание приложения wpf
- •Добавление элементов управления в окно wpf
- •Добавление элемента управления в окно wpf
- •Стандартные элементы управления wpf
- •Процедура Добавление элемента управления в окно wpf
- •Стандартные элементы управления wpf
- •Создание обработчиков событий для элементов управления wpf
- •Создание обработчика событий для кнопки
- •Подключение к данным
- •Подключение к базе данных
- •Добавление подключения к базе данных "Northwind"
- •Отображение связанных данных в форме
- •Отображение связанных данных в форме
- •Использование linq в c# Express
- •Преимущества использования linq
- •Расширения языка c# для поддержки linq
- •Написание запросов linq
- •Язык c# для начинающих Структура программы c#
- •"Hello World" в стиле c#
- •Директивы using и пространства имен
- •Комментарий
- •Консольный ввод и вывод
- •Структура программы и ход выполнения
- •Приложения Windows Forms36
- •Консольные приложения
- •Пространства имен
- •Ускоренный доступ к содержимому пространства имен
- •Создание собственного пространства имен
- •Классы и объекты
- •Члены экземпляра и статические члены37
- •Классы и файлы
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Конструкторы
- •Перегрузка методов
- •Деструкторы
- •Вызов метода в объекте
- •Компиляция кода
- •Наследование от класса
- •Компиляция кода
- •Имитация параметров по умолчанию
- •Компиляция кода
- •Задание свойства объекта
- •Компиляция кода
- •Структуры
- •Результат
- •Переменные и константы
- •Константы
- •Встроенные типы данных
- •Использование встроенных типов данных
- •Преобразование типов данных
- •Пример.
- •Типы значений и ссылочные типы
- •Упаковка и распаковка
- •Проблемы производительности
- •Операторы
- •Операторы равенства и назначения
- •Логические и математические операторы
- •Операторы увеличения и уменьшения
- •Реляционные операторы
- •Перегрузка операторов
- •Выбор и ветвление
- •Циклы foreach
- •Циклы for
- •Циклы while
- •Работа со строками Escape-знаки
- •Символ @
- •Доступ к отдельным знакам
- •Смена регистра
- •Сравнения
- •Разделение строки на подстроки
- •Использование класса StringBuilder
- •Создание многострочных строковых литералов
- •Компиляция кода
- •Поиск строки в массиве строк
- •Компиляция кода
- •Надежное программирование
- •Массивы и коллекции
- •Массивы
- •Одномерные массивы
- •Многомерные массивы
- •Массивы массивов
- •Использование оператора foreach
- •Массивы объектов
- •Инициализация массива
- •Компиляция кода
- •Надежное программирование
- •Передача массивов объектов в метод
- •Компиляция кода
- •Коллекции
- •Компиляция кода
- •Перечисления
- •Дополнительные способы перечисления
- •Отображение значений литералов перечисления
- •Установка значений по умолчанию
- •Обработка ошибок и исключений
- •Блоки finally
- •Перехват исключения
- •Компиляция кода
- •Общие сведения об основных понятиях платформы .Net Framework
- •Возможности среды clr
- •Библиотека классов платформы .Net Framework
Ускоренный доступ к содержимому пространства имен
Для использования метода WriteLine, определенного в классе Console, который содержится в пространстве имен System, следует использовать строку кода, как показано далее.
System.Console.WriteLine("Hello, World!");
Необходимость помнить, что всем методам, содержащимся в Console, должно предшествовать System быстро становится утомительной, поэтому в начало исходного файла C# целесообразно вставить директиву using, как показано далее.
using System;
Добавление
using
System;
устанавливает, что предполагается
использование классов из пространства
имен System. Впоследствии можно обратиться
к классу Console,
используя его короткое имя, написав
Console.WriteLine("Hello, World!");
Создание собственного пространства имен
Обычно
пространства имен используются при
работе с большими программами. Собственные
пространства имен предоставляют
определенный уровень контроля над
методами и типами с одинаковыми именами.
Например, предположим, что выполняется
написание приложения, загружающего с
диска статистические данные и файлы
изображений. Можно создать два новых
пространства имен, одно с именем Images
,
а другое — StatisticalData
.
Поскольку используются два отдельных
пространства, все имена методов,
определенные в каждом из них, будут
уникальными, даже если отдельные классы
имеют одинаковые имена. Предположим,
что в обоих пространствах находится
класс с именем FileHandling
и в каждом классе есть метод с именем
Load
.
Для указания нужного класса можно
обратиться к StatisticalData.FileHandling
или Images.FileHandling
.
Для каждого пространства имен в проекте Visual C# рекомендуется создать отдельную папку.
Example
The
following example defines two namespaces, each containing a class
named FileHandling
.
By specifying the namespace, it's possible to quickly differentiate
between the classes and the methods they contain.
namespace StatisticalData { class FileHandling { public void Load() {} // code to load statistical data } }
namespace Images { class FileHandling { public void Load() {} // code to load an image file } }
class Program { static void Main() { StatisticalData.FileHandling data = new StatisticalData.FileHandling(); data.Load();
Images.FileHandling image = new Images.FileHandling(); image.Load(); } } |
Пример
В
следующем примере определяются два
пространства имен, в каждом их которых
содержится класс с именем FileHandling
.
Указав пространство имен, можно быстро
отличать одни классы от других, имеющих
такие же имена.
------
Classes
C# is an object-oriented programming language, and in common with other modern languages, it groups related fields, methods, properties, and events into data structures called classes.
Classes vs. Objects
A class is basically a blueprint for a custom data type. Once you define a class, you use it by loading it into memory. A class that has been loaded into memory is called an object or an instance. You create an instance of a class by using the C# keyword new.
Here
is an example of a class definition called SampleClass
,
and the creation of an object called sampleClass1
that is an instance of that class. Because C# requires that the Main
function be defined inside a class, the following code also defines a
Program
class, but that class is not used to create an object.
using System; class SampleClass { public void SayHello() { Console.WriteLine("Hello, World!"); } } class Program { //Main is the entrypoint, where every C# program starts static void Main(string[] args) { SampleClass sampleClass1 = new SampleClass(); // Create an object sampleClass1.SayHello(); // Call a method } } |
Just
as you can build any number of houses based on the same blueprint,
you can instantiate any number of objects of the same class. It is
very common to have arrays or lists that contain many objects of the
same class. Each instance of the class occupies a separate memory
space and the values of its fields (except its static fields as
discussed below) are separate and independent. In the code example
below, you could create one object of type Animal
and set its size to 2, and another object whose size you set to 3.
However, there is an important exception to this rule, and that is
the static
member.
Классы
C# является объектно-ориентированным языком программирования и аналогично другим современным языкам группирует связанные поля, методы, свойства и события в структуры данных, которые называются классами.