- •Введение в язык 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
Переменные и константы
Переменная представляет числовое или строковое значение или объект класса. Значение, хранящееся в переменной, может измениться, однако имя остается прежним. Переменная представляет собой один тип поля. Следующий код является простым примером объявления целочисленной переменной, присвоения ей значения и последующего присвоения нового значения.
int x = 1; // x holds the value 1
x = 2; // now x holds the value 2
В C# переменные объявляются с определенным типом данных и именем. Если ранее вам приходилось работать со слабо типизированными языками, например JScript, вы привыкли использовать один тип "var" для всех переменных, то в C# необходимо указать тип переменной: int, float, byte, short или другой, из более чем 20 различных типов данных. Тип указывает, помимо всего прочего, точный объем памяти, который следует выделить для хранения значения при выполнении приложения. При преобразовании переменной из одного типа в другой язык C# следует определенным правилам.
int answer = 42;
string greeting = "Hello, World!";
double bigNumber = 1e100;
System.Console.WriteLine("{0} {1} {2}", answer, greeting, bigNumber);
Constants
A constant is another type of field. It holds a value that is assigned when the program is compiled, and never changes after that. Constants are declared using the const keyword; they are useful for making your code more legible.
const int speedLimit = 55; const double pi = 3.14159265358979323846264338327950; |
A readonly variable is like a constant but its value is assigned when a program starts up. This allows you to set the value based on some other condition that you don't know until the program is running. But after that first assignment, the value cannot change again while the program is running.
Built-in Data Types
C# is a strongly-typed language. Before a value can be stored in a variable, the type of the variable must be specified, as in the following examples:
int a = 1; string s = "Hello"; XmlDocument tempDocument = new XmlDocument(); |
Note that the type must be specified both for simple, built-in types such as an int, and for complex or custom types such as XmlDocument.
Константы
Константа является другим типом поля. Она хранит значение, присваиваемое по завершении компиляции программы, и никогда после этого не изменяется. Константы объявляются с помощью ключевого слова const; их использование способствует повышению удобочитаемости кода.
const int speedLimit = 55;
const double pi = 3.14159265358979323846264338327950;
Переменная readonly аналогична константе, однако значение ей присваивается при запуске программы. Это дает возможность задать значение на основе каких-либо других условий, неизвестных до начала выполнения программы. Однако после первого присваивания значение не может быть снова изменено пока выполняется программа.
Встроенные типы данных
C# является строго типизированным языком. Тип переменной должен быть определен до присвоения ей значения, как показано в следующих примерах.
int a = 1; string s = "Hello"; XmlDocument tempDocument = new XmlDocument(); |
Обратите внимание, что тип должен быть определен как для простых встроенных типов, таких как int, так и для сложных или пользовательских типов, таких как XmlDocument.
C# includes support for the following built-in data types:
Data Type |
Range |
byte |
0 .. 255 |
sbyte |
-128 .. 127 |
short |
-32,768 .. 32,767 |
ushort |
0 .. 65,535 |
int |
-2,147,483,648 .. 2,147,483,647 |
uint |
0 .. 4,294,967,295 |
long |
-9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807 |
ulong |
0 .. 18,446,744,073,709,551,615 |
float |
-3.402823e38 .. 3.402823e38 |
double |
-1.79769313486232e308 .. 1.79769313486232e308 |
decimal |
-79228162514264337593543950335 .. 79228162514264337593543950335 |
char |
A Unicode character. |
string |
A string of Unicode characters. |
bool |
True or False. |
object |
An object. |
These data type names are aliases for predefined types in the System namespace. All these types, with the exception of object and string, are value types.
C# поддерживает следующие встроенные типы данных.
Тип данных Диапазон byte 0 .. 255 sbyte -128 .. 127 short -32,768 .. 32,767 ushort 0 .. 65,535 int -2,147,483,648 .. 2,147,483,647 uint 0 .. 4,294,967,295 long -9,223,372,036,854,775,808 .. 9,223,372,036,854,775,807 ulong 0 .. 18,446,744,073,709,551,615 float -3,402823e38 .. -3,402823e38 .. double -1,79769313486232e308 .. 1,79769313486232e308 decimal -79228162514264337593543950335 .. 79228162514264337593543950335 char Символ Юникода. string Строка символов Юникода. bool true или false object Объект. |
Эти типы данных называются псевдонимами для предопределенных типов в пространстве имен System. Все эти типы, за исключением object и string, являются типами значений.
Using Built-in Data Types
Built-in data types are used within a C# program in several ways.
As variables:
int answer = 42; string greeting = "Hello, World!"; |
As constants:
const int speedLimit = 55; const double pi = 3.14159265358979323846264338327950; |
As return values and parameters:
long CalculateSum(int a, int b) { long result = a + b; return result; } |
To define your own data types, use Classes, Enumerations or Structs.
Converting Data Types
Converting between data types can be done implicitly, in which the conversion is done automatically by the compiler, or explicitly using a cast, in which the programmer forces the conversion, and assumes the risk of losing information.
For example:
int i = 0; double d = 0; i = 10; d = i; // An implicit conversion d = 3.5; i = (int) d; // An explicit conversion, or "cast" |