- •Введение в язык 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
Члены экземпляра и статические члены37
Статический
член представляет собой метод или поле,
доступ к которым можно получить без
ссылки на определенный экземпляр класса.
Самый известный статический метод это
Main
,
который представляет точку входа для
всех программ C#; создавать экземпляр
класса, содержащего метод Main,
для вызова метода Main
не нужно. Еще одним часто используемым
в консольных приложениях статическим
методом является метод WriteLine
класса Console. При доступе к статическим
методам необходимо обратить внимание
на отличие в синтаксисе; с левой стороны
оператора dot (точка) вместо имени
экземпляра используется имя класса:
Console.WriteLine
.
Поле
класса, объявляемое как статическое,
будет общим для всех экземпляров класса.
Если бы поле size
в следующем примере кода было объявлено
статическим и один из объектов класса
Animal
изменил бы значение поля size,
то это значение было бы изменено для
всех объектов типа Animal
.
Могут существовать статические классы, все элементы которых статические. Использование статических классов, методов и полей целесообразно в ряде случаев для повышения производительности и эффективности.
Классы и файлы
Каждая программа C# имеет, по крайней мере, один класс. При разработке программы рекомендуется (но не требуется) хранить каждый описываемый класс в отдельном файле исходного кода (файле с расширением .cs). Если для создания классов используется интегрированная среда разработки C#, она автоматически генерирует файл исходного кода.
Encapsulation
A
class typically represents the characteristics of a thing, and the
actions that it can perform. For example, to represent an animal as a
C# class, you might give it a size, speed, and strength represented
as numbers, and some functions such as MoveLeft()
,
MoveRight()
,
SpeedUp()
,
Stop()
and so on, in which you would write the code to make your "animal"
perform those actions. In C#, your animal
class would look like this:
public class Animal { private int size; private float speed; private int strength;
public void MoveLeft() // method { // code goes here... }
// other methods go here... } |
If you browse through the .NET Framework Class Library, you will see that each class represents a "thing," such as an XmlDocument, a String, a Form, and that each thing has various actions that it can perform (methods), characteristics that you can read and perhaps modify (properties) and notifications (events) that it sends out when it performs some given action. The methods, properties and events, along with all the other internal variables and constants (fields), are referred to as the members of the class.
Grouping members together into classes is not only logical, it also enables you to hide data and functions that you do not want other code to have access to. This principle is known as encapsulation. When you browse the .NET Framework class libraries, you are seeing only the public members of those classes. Each class probably also has private members that are used internally by that class or classes related to it, but are not meant to be used by applications. When you create your own classes, you will decide which members should be public, and which should be private.