- •Введение в язык 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
`
Оглавление
Введение в язык C# и .NET Framework 6
Язык C# 6
Архитектура платформы .NET Framework 6
Creating Your First C# Application 8
To create a C# application 8
Создание первого приложения C# 8
Создание приложения C# 8
To create a C# console application 9
Создание консольного приложения C# 9
To create a C# Windows application 15
Создание приложений Windows Forms на C# 15
Introduction to Windows Presentation Foundation 25
To create a WPF application 26
Создание приложения WPF C# 26
To create event handlers 30
Создание обработчиков событий 30
30
Designing a User Interface in Visual C# 31
Adding Controls 31
Создание пользовательского интерфейса в Visual C# 31
Добавление элементов управления 31
Setting Properties 33
Handling Events 33
Задание свойств 33
Обработка событий 33
How to: Use Button Controls 34
Использование элемента управления "Button" 34
To use buttons in a program 35
Использование кнопок в программе 35
How to: Call a Button's Click Event Programmatically 36
To use buttons in a program 36
Программный вызов события нажатия кнопки 36
Использование кнопок в программе 36
How to: Create a Group of Radio Buttons from a String Array 37
Создание группы переключателей из массива строк 37
How to: Create a Non-Rectangular Button 38
How to: Display Text on a Windows Form 39
To display text in a label 39
Отображение текста в форме Windows Forms 39
Отображение текста в надписи 39
How to: Use TextBox Controls to Get User Input 40
Использование элемента управления "TextBox" для получения вводимых данных 40
To retrieve input typed in a text box 41
Извлечение введенных в текстовое поле данных 41
How to: Convert the Text in a TextBox Control to an Integer 42
Преобразование текста в элементе управления "TextBox" в целое число 42
How to: Set the Selected Text in a TextBox Control 43
Установка выделения текста в элементе управления "TextBox" 43
How to: Format Characters in a RichTextBox Control 44
Форматирование знаков в элементе управления "RichTextBox" 44
How to: Load Text into a RichTextBox Control 45
Загрузка текста в элемент управления "RichTextBox" 45
Dialog Boxes 46
How to: Retrieve Data from a Dialog Box 46
Диалоговые окна 46
Извлечение данных из диалогового окна 46
To retrieve data from a dialog box. 48
How to: Browse a Folder 50
Просмотр папки 50
How to: Save a File to a Folder 51
To display the folder browser dialog box 51
Сохранение файла в папку 51
How to: Display a List of Fonts 52
Отображение списка шрифтов 52
How to: Display an OpenFileDialog Dynamically 54
Динамическое отображение компонента OpenFileDialog 54
ListBox and ComboBox Controls 56
ListBox и ComboBox 56
Date and Time Controls 60
How to: Select a Range of Dates in a Calendar Control 60
Отображение даты и времени 60
Выбор диапазона дат в элементе управления "Calendar" 60
Извлечение даты в элементе управления "DateTimePicker" 61
How to: Display the Time in a Label 62
Отображение времени в надписи 62
How to: Display the Date and Time in Your Application 63
Отображение даты и времени в приложении 63
How to: Determine the Span Between Two Dates 65
Определение интервала между двумя датами 65
TreeView Controls 66
How to: Add Nodes to a TreeView Control 66
How to: Add Nested Nodes to a TreeView Control 66
Элементы управления "TreeView" 66
Добавление узлов к элементу управления "TreeView" 66
Добавление вложенных узлов в элемент управления "TreeView" 66
Добавление узла в выбранный узел элемента управления "TreeView" 68
Creating a Custom UI 69
How to: Add Toolbars to a Windows Forms Application 69
Создание настраиваемого пользовательского интерфейса 69
Добавление панелей инструментов в приложение Windows Forms 69
To add a set of standard toolbar button 70
How to: Create a Tooltip for a Control 71
Создание всплывающей подсказки для элемента управления 71
How to: Create a Shortcut Menu and Attach it to a Control 72
Создание контекстного меню и присоединение его к элементу управления 72
How to: Add Windows Forms Controls at Run Time 73
Добавление элементов управления Windows Forms во время выполнения 73
Accessing and Displaying Data 74
How to: Write Class Data to an XML File 74
Доступ к данным и их отображение 74
Запись данных класса в XML-файл 74
How to: Read XML from a File 75
Чтение XML из файла 75
How to: Read Class Data from an XML File 76
Чтение данных класса из XML-файла 76
Drawing Text and Graphics 77
How to: Draw Text on a Form 77
Рисование текста и графики 77
Отрисовка текста в форме 77
Изменение цвета текста в элементе управления Windows Forms 78
Изображение графических объектов в форме Windows Forms 79
How to: Draw a Curve on a Form 80
Рисование кривой в форме 80
How to: Draw Outlined Shapes 81
Рисование контурных фигур 81
How to: Draw a Line on a Form 82
Рисование линии в форме 82
How to: Draw a Filled Rectangle on a Form 83
Рисование заполненного прямоугольника в форме 83
How to: Draw a Filled Ellipse on a Form 84
Рисование заполненного эллипса в форме 84
Adding Multimedia to an Application 85
How to: Embed Windows Media Player on a Form 85
Добавление файлов мультимедиа в приложение 85
Внедрение проигрывателя Windows Media в форму 85
How to: Play Sounds in an Application 87
To play an audio file 87
Воспроизведение звука в приложении 87
Creating and Using Bitmaps and Icons 88
How to: Create a Bitmap at Run Time 88
Создание и использование точечных рисунков и значков 88
Создание точечного рисунка во время выполнения 88
How to: Convert Images from One Format to Another 91
Преобразование изображений из одного формата в другой 91
Customizing, Displaying, and Printing Windows Forms 92
How to: Change the Background Color of a Form 92
How to: Create a Shaped Form 92
Настройка, отображение и печать Windows Forms 92
Изменение цвета фона формы 92
Создание сложной формы 92
How to: Get a Value from Another Form 93
Получение значения из другой формы 93
How to: Display One Form from Another 94
Отображение одной формы из другой 94
Creating WPF Applications 95
Designing a User Interface for a WPF Application 95
Создание приложений WPF 95
Создание пользовательского интерфейса для приложения WPF 95
To create a WPF application 96
Common WPF Controls 99
Стандартные элементы управления WPF 99
How to: Create Event Handlers for WPF Controls 103
Создание обработчиков событий для элементов управления WPF 103
Connecting to Data 104
How to: Connect to a Database 104
To add a connection to the Northwind database 104
The Data Source Configuration Wizard opens. 104
Подключение к данным 104
Подключение к базе данных 104
Добавление подключения к базе данных "Northwind" 104
How to: Display Related Data on a Form 106
To display related data on a form 106
Отображение связанных данных в форме 106
Отображение связанных данных в форме 106
Using LINQ in C# Express 107
Advantages of Using LINQ 107
Использование LINQ в C# Express 107
Преимущества использования LINQ 107
C# Language Enhancements that Support LINQ 108
Расширения языка C# для поддержки LINQ 108
Writing LINQ Queries 109
LINQ to Objects 109
Написание запросов LINQ 109
C# Language Primer 111
Inside a C# Program 111
Hello World, C# Style 111
Язык C# для начинающих 111
Структура программы C# 111
"Hello World" в стиле C# 111
111
using Directives and Namespaces 112
Comments 112
Директивы using и пространства имен 112
Комментарий 112
Classes 113
Main() 113
Классы 113
Main() 113
Console Input and Output 114
Консольный ввод и вывод 114
Program Structure and Flow of Execution 115
Windows Forms Applications 115
Структура программы и ход выполнения 115
Приложения Windows Forms 115
Console Applications 116
Namespaces 116
Консольные приложения 116
Пространства имен 116
Namespace Shortcuts 117
Creating Your Own Namespace 117
Ускоренный доступ к содержимому пространства имен 117
Создание собственного пространства имен 117
Classes 119
Classes vs. Objects 119
Классы 119
Классы и объекты 119
Static vs. Instance Members 120
Classes vs. Files 120
Члены экземпляра и статические члены 120
Классы и файлы 120
Encapsulation 121
Инкапсуляция 121
Inheritance 122
Polymorphism 122
Наследование 122
Полиморфизм 122
Constructors 123
Конструкторы 123
Operator Overloading 124
Destructors 124
Перегрузка методов 124
Деструкторы 124
How to: Call a Method on an Object 125
Вызов метода в объекте 125
How to: Inherit From a Class 126
Наследование от класса 126
How to: Simulate Default Parameters 127
Имитация параметров по умолчанию 127
How to: Declare a Property 128
Объявление свойства 128
How to: Set a Property on an Object 129
Задание свойства объекта 129
Structs 130
Example 130
Output 130
Структуры 130
Пример 130
Результат 130
Variables and Constants 131
Переменные и константы 131
Constants 132
Built-in Data Types 132
Константы 132
Встроенные типы данных 132
Value and Reference Types 135
Типы значений и ссылочные типы 135
Operators 138
Assignment and Equality Operators 138
Операторы 138
Операторы равенства и назначения 138
138
Mathematical and Logical Operators 139
Логические и математические операторы 139
139
Increment and Decrement operators 140
Операторы увеличения и уменьшения 140
140
Relational operators 141
Реляционные операторы 141
141
Logical Condition Operators 142
More Advanced Math Operators 142
Логические условные операторы 142
Несколько дополнительных математических операторов 142
Operator Overloading 143
Перегрузка операторов 143
144
Decisions and Branching 145
Remarks 145
Выбор и ветвление 145
Loops 147
foreach Loops 147
Циклы 147
Циклы foreach 147
for Loops 148
while Loops 148
Циклы for 149
Циклы while 149
do-while Loops 150
How to: Break Out of an Iterative Statement 150
Циклы do-while 150
Прерывание итерационного оператора 150
Strings 151
Строки 151
Working with Strings 152
152
Работа со строками 152
Using StringBuilder 160
Использование класса StringBuilder 160
160
How to: Generate Multiline String Literals 161
Создание многострочных строковых литералов 161
How to: Search for a String in an Array of Strings 162
Поиск строки в массиве строк 162
How to: Search Within a String 163
Поиск в строке 163
Arrays and Collections 164
Arrays 164
Массивы и коллекции 164
Массивы 164
How to: Declare an Array 168
Объявление массива 168
How to: Initialize an Array 169
Инициализация массива 169
How to: Pass Object Arrays to Methods 170
Передача массивов объектов в метод 170
Collections 171
171
Коллекции 171
How to: Iterate Through an Array 172
How to: Iterate Through a Collection 172
Итерация массива 172
Выполнение итерации коллекции 172
Enumerations 173
Перечисления 173
173
More Advanced Enumeration Techniques 174
Дополнительные способы перечисления 174
174
Errors and Exception Handling 175
Try and Catch 175
Обработка ошибок и исключений 175
Try и Catch 175
finally Blocks 176
Using Exception Handling 176
You can also cause your own exceptions using the throw keyword. 176
176
Блоки finally 176
How to: Catch an Exception 178
Перехват исключения 178
.NET Framework Conceptual Overview 179
Общие сведения об основных понятиях платформы .NET Framework 179
Features of the Common Language Runtime 181
Возможности среды CLR 181
.NET Framework Class Library 183
Библиотека классов платформы .NET Framework 183
Введение в язык c# и .Net Framework
C# — элегантный, строго типизированный объектно-ориентированный язык, предназначенный для разработки разнообразных безопасных и мощных приложений, выполняемых в среде .NET Frameworki. На языке C# можно разрабатывать обычные клиентские приложения Windows, веб-службы XML, распределенные компоненты, приложения типа “сервер-клиент”, приложения баз данных и многие-многие другие. В Visual C# 2008 имеется расширенный редактор кода, конструкторы с удобным пользовательским интерфейсом, встроенный отладчик и многие другие средства, призванные упростить разработку приложений на языке C# версии 3.0 и .NET Framework версии 3.5.
Примечание. |
При чтении документации Visual C# подразумевается, что пользователь обладает знаниями об основных принципах программирования. Абсолютным новичкам можно посоветовать версию Visual C#, экспресс-выпуск, которая доступна в Интернете. Для приобретения практических навыков программирования можно также воспользоваться преимуществами книг и ресурсов в Интернете, посвященных языку C#. |
Язык c#
Синтаксис C# очень выразителен, но прост в изучении. Все, кто знаком с языками C, C++ или Java с легкостью узнают синтаксис с фигурными скобками, характерный для языка C#. Разработчики, знающие любой из этих языков, как правило, смогут добиться эффективной работы с языком C# за очень короткое время. Синтаксис C# делает проще то, что было сложно в C++, и обеспечивает мощные возможности, такие как типы значений Nullable, перечисления, делегаты, лямбда-выражения и прямой доступ к памяти, чего нет в Java. C# поддерживает универсальные методы и типы, обеспечивая более высокий уровень безопасности и производительности, а также итераторы, позволяющие при реализации коллекций классов определять собственное поведение итерации, которое может легко использоваться в клиентском коде. В C# 3.0 выражения LINQ (Language-Integrated Query) делают строго-типизированный запрос первоклассной конструкцией языка.
Как объектно-ориентированный язык, C# поддерживает понятия инкапсуляции, наследования и полиморфизма. Все переменные и методы, включая метод Main – точку входа приложения – инкапсулируются в определения классов. Класс может наследовать непосредственно из одного родительного класса, но может реализовывать любое число интерфейсов. Для методов, которые переопределяют виртуальные методы в родительском классе, необходимо ключевое слово override, чтобы исключить случайное повторное определение. В языке C# структура похожа на облегченный класс: это тип, распределяемый в стеке, реализующий интерфейсы, но не поддерживающий наследование.
В дополнение к основным описанным объектно-ориентированным принципам, язык C# упрощает разработку компонентов программного обеспечения благодаря нескольким инновационным конструкциям языка, в число которых входят следующие:
Инкапсулированные подписи методов, называемые делегатами, которые поддерживают строго-типизированные уведомления о событиях.
Свойства, выступающие в роли методов доступа для закрытых переменных-членов.
Атрибуты с декларативными метаданными о типах во время выполнения.
Встроенные комментарии XML-документации.
LINQ (Language-Integrated Query), предлагающий встроенные возможности запросов в различных источниках данных.
Если потребуется обеспечить взаимодействие с другим программным обеспечением Windows, таким как объекты COM или собственные библиотеки DLL Win32, в языке C# можно использовать процесс, который называется "Interop." Процесс Interop позволяет программам на C# выполнять практически любые действия, которые может выполнять исходное приложение на C++. Язык C# поддерживает даже указатели и понятие "небезопасного" кода для тех случаев, когда прямой доступ к памяти имеет крайне важное значение.
Процесс построения C# по сравнению с C и C++ прост и является более гибким, чем в Java. Нет отдельных файлов заголовка, а методы и типы не требуется объявлять в определенном порядке. В исходном файле C# может быть определено любое число классов, структур, интерфейсов и событий.