
- •Введение в язык 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[][] jaggedArray = new int[3][];
Создание массива трех массивов. Эти массивы можно инициализировать следующим образом
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];
Using the foreach Statement
The foreach statement is often used to access each element stored in an array:
int[] numbers = { 4, 5, 6, 1, 2, 3, -2, -1, 0 }; foreach (int i in numbers) { System.Console.WriteLine(i); } |
Использование оператора foreach
Оператор foreach часто используется для доступа к каждому элементу, хранимому в массиве
int[] numbers = { 4, 5, 6, 1, 2, 3, -2, -1, 0 };
foreach (int i in numbers)
{
System.Console.Write("{0} ", i);
}
//Output: 4 5 6 1 2 3 -2 -1 0
Arrays of Objects
Creating an array of objects, rather than an array of simple data types such as integers, is a two-part process. First you declare the array, and then you must create the objects that are stored in the array. This example creates a class that defines an audio CD. It then creates an array that stores 20 audio CDs.
namespace CDCollection { // Define a CD type. class CD { private string album; private string artist; private int rating; public string Album { get {return album;} set {album = value;} } public string Artist { get {return artist;} set {artist = value;} } public int Rating { get {return rating;} set {rating = value;} } } class Program { static void Main(string[] args) { // Create the array to store the CDs. CD[] cdLibrary = new CD[20];
// Populate the CD library with CD objects. for (int i=0; i<20; i++) { cdLibrary[i] = new CD(); } // Assign details to the first album. cdLibrary[0].Album = "See"; cdLibrary[0].Artist = "The Sharp Band"; cdLibrary[0].Rating = 10; } }} |
Массивы объектов
Создание массива объектов в отличие от создания массива простых типов данных, например целочисленных, происходит в два этапа. Сначала необходимо объявить массив, а затем создать объекты для хранения в нем. В этом примере создается класс, определяющий аудио компакт-диск. Затем создается массив для хранения 20 аудио компакт-дисков.
namespace CDCollection
{
// Define a CD type.
class CD
{
private string album;
private string artist;
private int rating;
public string Album
{
get {return album;}
set {album = value;}
}
public string Artist
{
get {return artist;}
set {artist = value;}
}
public int Rating
{
get {return rating;}
set {rating = value;}
}
}
class Program
{
static void Main(string[] args)
{
// Create the array to store the CDs.
CD[] cdLibrary = new CD[20];
// Populate the CD library with CD objects.
for (int i=0; i<20; i++)
{
cdLibrary[i] = new CD();
}
// Assign details to the first album.
cdLibrary[0].Album = "See";
cdLibrary[0].Artist = "The Sharp Band";
cdLibrary[0].Rating = 10;
}
}}
How to: Declare an Array
This example shows three different ways to declare different kinds of arrays: single-dimensional, multidimensional, and jagged.
Example
// Single-dimensional arrays. int[] myArray1 = new int [5]; string[] myArray2 = new string[6];
// Multidimensional arrays. int[,] myArray3 = new int[4,2]; int[,,] myArray4 = new int [4,2,3];
// Jagged array (array of arrays) int[][] myArray5 = new int[3][]; |
Compiling the Code
Copy the code and paste it into the Main method of a console application.
Robust Programming
Make sure you initialize the elements of the jagged array before using it, as follows:
myArray5[0] = new int[7]; myArray5[1] = new int[5]; myArray5[2] = new int[2]; |
Объявление массива
В этом примере показано три различных способа объявления нескольких видов массивов: одномерного, многомерного и массива массивов.
Пример
// Single-dimensional arrays. int[] myArray1 = new int [5]; string[] myArray2 = new string[6]; // Multidimensional arrays. int[,] myArray3 = new int[4,2]; int[,,] myArray4 = new int [4,2,3]; // Jagged array (array of arrays) int[][] myArray5 = new int[3][]; |
Компиляция кода
Скопируйте код и вставьте его в метод Main консольного приложения.
Надежное программирование
Убедитесь, что перед использованием массива массивов выполнена инициализация его элементов, как показано далее.
myArray5[0] = new int[7]; myArray5[1] = new int[5]; myArray5[2] = new int[2]; |
How to: Initialize an Array
This example shows three different ways to initialize different kinds of arrays: single-dimensional, multidimensional, and jagged.
Example
// Single-dimensional array (numbers). int[] n1 = new int[4] {2, 4, 6, 8}; int[] n2 = new int[] {2, 4, 6, 8}; int[] n3 = {2, 4, 6, 8}; // Single-dimensional array (strings). string[] s1 = new string[3] {"John", "Paul", "Mary"}; string[] s2 = new string[] {"John", "Paul", "Mary"}; string[] s3 = {"John", "Paul", "Mary"}; // Multidimensional array. int[,] n4 = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} }; int[,] n5 = new int[,] { {1, 2}, {3, 4}, {5, 6} }; int[,] n6 = { {1, 2}, {3, 4}, {5, 6} }; // Jagged array. int[][] n7 = new int[2][] { new int[] {2,4,6}, new int[] {1,3,5,7,9} }; int[][] n8 = new int[][] { new int[] {2,4,6}, new int[] {1,3,5,7,9} }; int[][] n9 = { new int[] {2,4,6}, new int[] {1,3,5,7,9} }; |
Compiling the Code
Copy the code and paste it into the Main method of a console application.
Robust Programming
Array members are automatically initialized to the default initial value for the array type if the array is not initialized at the time it is declared. If the array declaration is a field of a type, then when the type is instantiated, the array will be set to its default value of null.