Васильев А.Н. Основы программирования на C#. Васильев А. Н. Программирование
Скачать 5.54 Mb.
|
512 // ɋɨɡɞɚɧɢɟ ɨɱɟɪɟɞɢ: Queue myqueue=new Queue(); // Ⱦɨɛɚɜɥɟɧɢɟ ɷɥɟɦɟɧɬɨɜ ɜ ɨɱɟɪɟɞɶ: myqueue.Enqueue( ƎɈɞɢɧƎ); myqueue.Enqueue( ƎȾɜɚƎ); myqueue.Enqueue( ƎɌɪɢƎ); // Ɉɬɨɛɪɚɠɟɧɢɟ ɫɨɞɟɪɠɢɦɨɝɨ ɨɱɟɪɟɞɢ: show(myqueue); // ɋɱɢɬɵɜɚɧɢɟ ɷɥɟɦɟɧɬɚ ɢɡ ɨɱɟɪɟɞɢ: Console.WriteLine( Ǝɉɪɨɱɢɬɚɧɨ: Ǝ+myqueue.Peek()); // Ɉɬɨɛɪɚɠɟɧɢɟ ɫɨɞɟɪɠɢɦɨɝɨ ɨɱɟɪɟɞɢ: show(myqueue); // ɂɡɜɥɟɱɟɧɢɟ ɷɥɟɦɟɧɬɚ ɢɡ ɨɱɟɪɟɞɢ: Console.WriteLine( Ǝɂɡɜɥɟɱɟɧɨ: Ǝ+myqueue.Dequeue()); // Ɉɬɨɛɪɚɠɟɧɢɟ ɫɨɞɟɪɠɢɦɨɝɨ ɨɱɟɪɟɞɢ: show(myqueue); Результат выполнения программы представлен ниже: Результат выполнения программы (из листинга 9.11) ɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ: | Ɍɪɟɬɢɣ|ȼɬɨɪɨɣ|ɉɟɪɜɵɣ| ɉɪɨɱɢɬɚɧɨ: Ɍɪɟɬɢɣ ɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ: | Ɍɪɟɬɢɣ|ȼɬɨɪɨɣ|ɉɟɪɜɵɣ| ɂɡɜɥɟɱɟɧɨ: Ɍɪɟɬɢɣ ɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ: | ȼɬɨɪɨɣ|ɉɟɪɜɵɣ| ɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ: | Ɉɞɢɧ|Ⱦɜɚ|Ɍɪɢ| Немного о разном Ɉɞɢɧ ɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ: | Ɉɞɢɧ|Ⱦɜɚ|Ɍɪɢ| ɂɡɜɥɟɱɟɧɨ: Ɉɞɢɧ ɋɨɞɟɪɠɢɦɨɟ В программе описан статический метод show(), который предназначен для отображения содержимого коллекции, переданной аргументом методу. Аргумент метода описан как относящийся к типу ICollection. В этом случае мы учли, что классы Stack и Queue реализуют интерфейс ICollection , и поэтому объекты этих классов могут передаваться методу в качестве аргумента. В методе Main() создаются стек (команда Stack mystack=new Stack()) и очередь (команда Queue myqueue=new Queue()). В стеки очередь сначала добавляются элементы, после чего отображается содержимое соответствующей коллекции. Затем элемент считывается с помощью метода Peek(). При этом элемент из коллекции не удаляется. При извлечении элемента с помощью метода Pop() для стека и Dequeue() для очереди элемент удаляется из коллекции НАЗ А МЕТКУ При попытке получить элемент из стека или очереди, в которой нет элементов, генерируется исключение класса InvalidOperation Существует еще один примечательный тип коллекций, которые иногда называют ассоциативными. В такой коллекции доступ к элементу выполняется по ключу. Ключ — это некоторое значение (необязательно целочисленное, которое играет роль индекса. То есть элемент в коллекции сохраняется в виде пары ключ-значение. Реализовать ассоциативную коллекцию можно, например, на основе класса Hashtable или класса SortedList. На основе класса Hashtable создается контейнер, в котором пары ключ-значение хранятся в виде хэш-таблицы (для кодирования и реализации значений разных типов используется специальный числовой код, или хэш-код). В коллекции, созданной на основе класса SortedList, пары ключ-значение Глава хранятся в упорядоченном виде (упорядочивание выполняется по ключу. Небольшая иллюстрация к использованию классов Hashtable и SortedList представлена в листинге Листинг 9.12. Ассоциативные коллекции System; using System.Collections; // Ƚɥɚɜɧɵɣ ɤɥɚɫɫ: class HashTableDemo{ // Ƚɥɚɜɧɵɣ ɦɟɬɨɞ: static void Main(){ // ɋɨɡɞɚɧɢɟ ɤɨɥɥɟɤɰɢɢ: Hashtable ht=new Hashtable(); // Ⱦɨɛɚɜɥɟɧɢɟ ɷɥɟɦɟɧɬɨɜ ɜ ɤɨɥɥɟɤɰɢɸ: ht.Add( ƎɩɟɪɜɵɣƎ,100); ht.Add( ƎɜɬɨɪɨɣƎ,200); ht[ ƎɬɪɟɬɢɣƎ]=300; // Ʉɨɥɥɟɤɰɢɹ ɢɧɞɟɤɫɨɜ: ICollection keys=ht.Keys; Console.WriteLine( Ǝɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ:Ǝ); // ɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ: foreach(string s in keys){ Console.WriteLine( Ǝ{0} -> {1}Ǝ,s,ht[s]); } // ɋɨɡɞɚɧɢɟ ɤɨɥɥɟɤɰɢɢ: SortedList sl=new SortedList(); // Ⱦɨɛɚɜɥɟɧɢɟ ɷɥɟɦɟɧɬɨɜ ɜ ɤɨɥɥɟɤɰɢɸ: sl.Add( ƎɨɞɢɧƎ,1); sl.Add( ƎɞɜɚƎ,2); sl[ ƎɬɪɢƎ]=3; // Ʉɨɥɥɟɤɰɢɹ ɤɥɸɱɟɣ: keys=sl.Keys; Немного о разном Console.WriteLine( Ǝɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ:Ǝ); // ɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ: foreach(string s in keys){ Console.WriteLine( Ǝ{0} -> {1}Ǝ,s,sl[s]); } Ниже показано, каким будет результат выполнения программы: Результат выполнения программы (из листинга 9.12) ɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ: ɬɪɟɬɢɣ -> 300 ɩɟɪɜɵɣ -> 100 ɜɬɨɪɨɣ -> 200 ɋɨɞɟɪɠɢɦɨɟ ɤɨɥɥɟɤɰɢɢ: ɞɜɚ -> 2 ɨɞɢɧ -> 1 ɬɪɢ -> В этой программе создается две коллекции одна на основе класса Hashtable (команда Hashtable ht=new Hashtable()) и другая на основе класса SortedList (команда SortedList sl=new SortedList()). Для добавления элементов в коллекции используется метод Add(), первым аргументом которому передается ключ элемента, а вторым аргументом методу передается значение элемента. Также можно индексировать объект коллекции, указав в качестве индекса ключ элемента. У объектов коллекций есть свойства Keys и Values. Эти свойства результатом возвращают коллекции, соответственно, из ключей и значений элементов. Поэтому для получения коллекции ключей используем выражения ht.Keys и sl.Keys. Ссылки на коллекции ключей последовательно записываются в переменную keys, которая объявлена как относящаяся к интерфейсному типу ICollection. Перебирая ключи в коллекции ключей, получаем доступ к значениям элементов Глава 9 516 { i НАЗ А МЕТКУ Обратите внимание, что в коллекции, созданной на основе класса, элементы сортируются по значениям ключей. Также стоит заметить, что классы коллекций, в том числе и классы Hashtable и SortedList , содержат всевозможные методы и свойства, с помощью которых решаются самые различные задачи, связанные с использованием коллекций. Резюме — Позвольте узнать, что вы можете сказать по поводу прочитанного Да несогласен я. из к/ф Собачье сердце Метод Show() из класса MessageBox возвращает результат. Этим результатом является одна из констант перечисления Значение константы позволяет определить кнопку, которую нажал пользователь в диалоговом окне Для определения области уникальности имен используется пространство имен. Для подключения уже существующего пространства имен используют инструкцию using , после которой указывается подключаемое пространство имен. Если пространство имен не подключено, то при использовании классов и других утилит этого пространства перед их именем следует через точку указывать название пространства имен Чтобы описать собственное пространство имен, используют ключевое слово namespace , после которого следует блок (выделяется фигурными скобками) с описанием классов, структур, интерфейсов и прочих утилит, которые входят в пространство имен. Описание пространства имен можно разбивать на несколько блоков Инструкцию using можно использовать для создания псевдонимов. В этом случае после ключевого слова using указывается идентификатор (псевдоним, оператор присваивания и выражение, для которого создается псевдоним Для работы с датой и временем используют структуры DateTime (экземпляр структуры реализует дату и время) и TimeSpan (экземпляр Немного о разном 517 структуры реализует время. Эти структуры имеют большое количество свойств и методов, позволяющих получать и обрабатывать информацию, связанную с датой и временем. В частности, статическое свойство Now структуры DateTime результатом возвращает экземпляр этой же структуры, реализующий текущую дату и время Для записи данных в файл и считывания данных из файла используют потоки. Существует несколько типов потоков в зависимости оттого, каким образом обрабатываются данные символьные потоки, байтовые потоки и бинарные потоки. Основные классы, используемые при работе с потоками, относятся к пространству имен System.IO • Для создания объекта байтового потока используется класс FileStream . При создании объекта потока аргументом конструктору передается имя файла, связанного с этим потоком. Второй аргумент конструктора определяет режим открытия файла. Для считывания байта из потока может использоваться метода для записи байта в поток может использоваться метод Write- Byte() . Есть и другие методы, предназначенные для работы с потоками Для создания символьного потока используют классы StreamReader и StreamWriter . Объекты символьных потоков могут создаваться на основе объекта байтового потока, но проще сразу указать имя файла, связанного с символьным потоком. Для обработки данных есть много методов. Среди них можно выделить такие, как считывает текстовую строку из файла) и WriteLine() (записывает данные в файл Для создания бинарных потоков используют классы BinryReader и BinaryWriter . Объект бинарного потока можно создать на основе объекта байтового потока (ссылка на этот объект передается аргументом конструктору. Для записи данных в поток можно использовать метод Write() . Для считывания данных из файла используются такие методы, как ReadInt32() , ReadChar() , ReadDouble() , ReadString() , и ряд других Существуют классы для реализации коллекций. Коллекции представляют собой набор или группу объектов. Среди этих классов можно выделить ArrayList , Stack и Queue . Для создания ассоциативных коллекций можно использовать классы Hashtable и SortedList Глава Задания для самостоятельной работы Все построено на силах природы с разрешения месткома и культпросветкомиссии. из к/ф Собачье сердце Напишите программу, в которой генерируется случайное целое число (например, в диапазоне от 1 до 10), а пользователю необходимо его угадать. Если пользователь не угадал число, программа выдает запрос о том, хочет ли он попробовать еще раз. Процесс заканчивается, если пользователь угадывает число или отказывается угадывать снова. Для ввода чисел использовать окно с полем ввода, а для запроса о желании продолжить угадывание использовать окно с кнопками Да и Нет Напишите программу, в которой есть производный класс. Класс создается на основе базового класса и реализует интерфейс. Производный класс, базовый класс и интерфейс описываются в разных пространствах имен Напишите программу, в которой пользователь вводит дату своего рождения, а программа вычисляет, сколько прошло полных лет, месяцев и дней от указанной даты до текущей Напишите программу, в которой для указанного интервала времени в годах) определяются годы, первый день которых (1 января) попадает на понедельник Напишите программу, содержащую статический метод, которому передаются два аргумента, определяющих некоторые даты. Метод сравнивает эти даты на предмет совпадения. Даты считаются совпадающими, если они отличаются не более чем на определенный интервал времени. Интервал времени задается третьим аргументом метода Напишите программу, в которой считывается содержимое текстового файла и создается новый текстовый файл. В новый текстовый файл заносится текст из исходного текстового файла, но все пробелы заменяются подчеркиваниями, а заглавные буквы заменяются строчными Напишите программу, в которой описывается класс стремя полями целое число, символ и текст. Создайте объект этого класса, прочитав значения для его полей из бинарного файла. Файл предварительно создается программой Немного о разном Напишите программу, в которой на основе класса ArrayList создается коллекция и заполняется текстовыми элементами. Текстовые значения это слова из текста, записанного в текстовую переменную. Исходите из того, что слова в тексте разделяются пробелами Напишите программу, содержащую статический метод с аргументом, являющимся целочисленным массивом. Результатом метод возвращает стек, состоящий из тех элементов массива, значение которых не меньше среднего значения по массиву Напишите программу, в которой создается ассоциативная коллекция. Значения элементов в коллекции — это случайные буквы. Значения ключей определяются так первый ключ равен 1, второй ключ равен 2, а каждый следующий ключ определяется как сумма двух предыдущих 520 Заключение ИТОГИ И ПЕРСПЕКТИВЫ Опять электричества нет. из к/ф Собачье сердце» В книге мы рассмотрели большинство тем, критически важных при изучении языка C#. Конечно, кое-что осталось за бортом. Но это не должно смущать. Во-первых, объем материала, предназначенного для изучения, итак достаточно большой. Во-вторых, технологии не стоят на месте и средства программирования идут в ногу с прогрессом. Поэтому процесс изучения тонкостей программирования и совершенствования навыков написания программ — многогранный, живой и фактически нескончаемый. Ведь жизнь — это движение. Важно не останавливаться и двигаться в правильном направлении. Темы, примеры и программы, которые рассматривались в книге, должны заложить основы в понимании базовых, наиболее важных принципов, без которых невозможно эффективное создание программ на языке C#. Здесь уместно вспомнить принцип Парето. Согласно этому принципу, в деятельности любого рода есть 20% усилий, которые дают 80% результата. Нельзя сказать, что работа с материалом книги — это 20% необходимых усилий. Пожалуй, объем проделанной читателем работы намного превышает означенную планку. И даже если какие-то программы или приемы, описанные в книге, оказались не совсем понятными — нестрашно. Достаточно понять принципы, на основании которых разные программные механизмы, объекты и конструкции объединяются водно целое и взаимодействуют друг с другом. Если такое понимание пришло — значит книга свою задачу выполнила и читатель не зря потратил время и усилия. Закончить хочется где-то банальным, но очень важным советом. Состоит он в том, чтобы систематически и неустанно совершенствовать навыки программирования. Ведь лучший способ научиться программировать — это программировать. Ошибаться, исправлять ошибки, критически анализировать свои и чужие программы, задавать вопросы и искать оригинальные решения. Именно так выглядит путь к успеху ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Адрес переменной, 179–180, 182, 188, 196, 202, 209, 219, Адрес указателя, Графический интерфейс, 59, 124, 381, 382–387, 394, Двоичный код, Делегат, 290, 323, 327, 330, 360 EventHandler, 384, 394–395, 403, 412, 460, 466–467 ThreadStart, 279–280, 282–283, 290, обобщенный, экземпляр, 363, 376–377, 384 Деструктор, 138, 174, 210, 211, 467 Индексатор, 7–8, 11–12, 18, 22–23, 25, 26, 30–31, Инструкция, 385–387 abstract, 10–11, 15, 22, 25, 35, 52, 54 base, 15–17, 22–23, 35, 47, 51, 53 checked, 256–257 class, 137, 174 const, 138 delegate, 61 enum, 131, 136, 174 event, 112, 117, 126 finally, 226, 242–244, 248–249, 274 fixed, 208–209, 211 interface, 25, 36 lock, 204, 308, 324 namespace, 475, 516 new, 62, 71, 125, 140, 170, 175, 368 null, 140, 143, 154, 320, 498 operator, 163 override, 10, 12, 17, 22, 26, 35, 47, 52, 54–55, 151 protected, 138, 174, 360 public, 25, 30, 35, 52, 54–55, 112, 114, 126 ref, 159 sealed, 279 sizeof, 191 static, 138, 480 struct, 137, 174 this, 52, 150, 400 throw, 251–253, 256, 274 typeof, 332, 510 unchecked, 226, 256–257, 259, 274 unsafe, 183, 188, 224 using, 475, 477–478, 480, 516 value, 30, 120, 124 virtual, 10, 25, 54 void, 181 where, 363, Интерфейс, 6–7, 9, 24–27, 30, 36, 40, 45, 47 ICloneable, 510 ICollection, 506, 510 IComparer, 506 IDictionary, 506 IEnumerable, 506, 510 IEnumerator, 506 IList, 506 INumerable, наследование, 24, 36 Предметный указатель 522 обобщенный, расширение, реализация, 9, 26, явная реализация, Исключение, генерирование, объект, пользовательский класс, Класс, 6, 8, 10 Application, 386, 390 ApplicationException, 234, 254, 274, 276 ArgumentException, 234 ArithmeticException, 233, 234, 253, 262, 276 Array, 136, 248 ArrayList, 506, 508, 517, 519 ArrayTypeMismatchException, 234 BinaryWriter, 502, 504, 517 BinryReader, 502, 517 Button, 382, 383, 411, 423, 436–438, 447 CheckBox, 382, 430, 436 ComboBox, 382, 404, 409, 416 ContextMenuStrip, 459–460 DivideByZeroException, 231–234, 237–238, 249–251 Enum, 131, 136, 174 EventArgs, 384, 394–395, 403, 412, 466–467 Exception, 233–234, 240, 242, 250, 254, 264, 270, 274, 276 FieldAccessException, 235 FileNotFoundException, 491 FileStream, 491–492, 495, 517 Font, 401–403, 411 Form, 382, 385–386, 391, 393, 394, 400, 409, 424, 436, 439, 447 FormatException, 235, 237–238, 242, 248–250 Graphics, 465 GroupBox, 382, 419 Hashtable, 513, 516– 517 Icon, 401, 403 Image, 410 IndexOutOfRangeException, 235, 237–238, 248–251, 268, 270 InvalidCastException, 235 InvalidOperationException, 513 InvalidProgramException, 235 IOException, 491 Label, 382–383, 409, 424, 447, 458, 465 ListBox, 383, 416 MainMenu, 447 Math, 275, 323, 480 MemberAccessException, 235 MenuItem, 447–448 MessageBox, 470–472, 474, 516 MethodAccessException, 235 MethodBase, 233 MissingMemberException, 235 NotFiniteNumberException, 234 NotImplementedException, 235 NotSupportedException, 235 NullReferenceException, 235 Object, 136, 138, 329, 384, 394–395, 403, 412, 438, 460, 467, 478, 509–510 OutOfMemoryException, 235 OverflowException, 234–235, 237– 238, 242, 249–250, 256–258, 273, 276 Panel, 383, 419, 465 Pen, 465–466 Point, 401, 403, 466 Queue, 510, 513, 517 RadioButton, 383, 418, 424 Random, 237, 308, 319–320, 340 RankException, 235 Rectangle, 402–403 SecurityException, 491 SortedList, 513–517 Stack, 510, 513, 517 StackOverflowException, 235 Предметный указатель, 490–491 StreamReader, 497, 500, 517 StreamWriter, 497, 517 String, 23, 61, 63, 66, 127, 143, 214– 215, 335, 478 SystemException, 233–234, 274 TextBox, 383, 430, 436, 458 Thread, 278 ThreadStateException, 279, 288 TimeoutException, 235 ToolStrip, 449 ToolStripButton, 449 Type, 136, 232, 300, 307, 331–332, абстрактный, 9–12, 15, 18, 22–23, 26–27, 35, 47, 54–56, 58, базовый, 10–11, 26, 47, 54–56, 360, 364, обобщенный, 329, Коллекция, очередь, стек, Конструктор, 15–16, 22, 31, 35, 43–45, 52–53, 55–56, 66, 70, 75–76, 83, 90, 93, 95–96, 111, 118, 127, 138, 140, 143, 150, 158, 162, 169–170, 174– 176, 210, 253–256, 262, 267, 270, 276, 279–280, 283, 287, 290, 316, 323, 328–329, 334, 349–350, 352, 364, 366–370, 372, 374, 378, 393– 395, 400–402, 409, 411, 416–417, 423–425, 436, 438–439, 447, 449, 458–459, 465, 481, 487, 491–492, 495, 497, по умолчанию, 22, 140, 143, 170, Конструкция try catch, Лямбда выражение, 290, 294, 301, 308, 313, 316–317, 394–395, 424, 448–449, 458–460, Массив, 6, 8, 22–23, 55–58, 60, 127– 128, 136, Метод, 6–12, 15–17, 22–27, 30–31 Abort(), 298, 313, 324 Add(), 401, 403, 411, 448–449, 459, 482, 506, 508, 515 AddDays(), 483 AddHours(), 483 AddMilliseconds(), 483 AddMinutes(), 483 AddMonths(), 483 AddRange(), 410 AddSeconds(), 483 AddTicks(), 483 AddYears(), 483 Clear(), 506 Close(), 492 Compare(), 484 CompareTo(), 379, 484 Contains(), 506 CopyTo(), 492, 496–497, 506 CreateGraphics(), 465 DaysInMonth(), 483 Dequeue(), 510, 513 Dispose(), 467 DrawLine(), 466 Enqueue(), 510 Equals(), 484 Exit(), 402, 412 Flush(), 492 FromFile(), 410, 459 GetDateTimeFormats(), 483 GetLength(), 314 GetType(), 232, 331 GetValues(), 136 IndexOf(), 506 Insert(), 506 IsDaylightSavingTime(), 483 IsLeapYear(), 484 Join(), 288, 324 Parse(), 363, 484 ParseExact(), 484 Peek(), 510, 513 PerformClick(), 449 Предметный указатель, 510, 513 Push(), 510 Read(), 265, 492, 497 ReadByte(), 492, 495, 517 ReadChar(), 505, 517 ReaddLine(), 517 ReadDouble(), 505, 517 ReadInt32(), 505, 517 ReadString(), 505, 517 Refresh(), 466–467 Remove(), 506, 509 RemoveAt(), 506 Reverse(), 509 Run(), 282–283, 290, 293–294, 297, 300–302, 307–309, 386, 395, 403, 439 Seek(), 492 SetBounds(), 409 SetSelected(), 417 Show(), 15–16, 30–31, 35, 39, 47, 51–53, 70–72, 118–119, 143– 144, 146–147, 158, 162–163, 170, 172–174, 207–208, 267, 286–287, 293–294, 335, 340–341, 343, 345, 349–350, 352, 355–356, 360, 366–367, 370, 374–375, 395–396, 470–472, 477, 513, 516 ShowDialog(), 438–439 Sleep(), 282, 324 SortedList, 513–517 Start(), 279, 283, 287, 308, 323 Subtract(), 484 ToArray(), 509 ToCharArray(), 22 ToLocalTime(), 484 ToLower(), 440 ToString(), 75, 85, 148–151, 176, 256, 270–271, 334–335, 369–370, 372–373, 484, 486 ToUniversalTime(), 484 TryParse(), 484 TryParseExact(), 484 Write(), 492, 498, 504, 517 WriteByte(), 492 WriteLine(), 135, 232, 271, 308, 317, 480, 498, абстрактный, 9–10 аксессор, 11–12, 22–23, 25, 31, 51, 54, 57–58, 82–83, 109, 113, 119–120, 124, 126, 154, 169, анонимный, виртуальный, 10–11, 25, главный, 66, 79, 162, 175, 183, 188, 211, 248, 335, обобщенный, 327–328, 330, 363, операторный, 163, 177, 336, перегрузка, переопределение, 6, 8, 12, 22, ссылка, Многократная адресация, 67 Многопоточность, Наследование, 6, 24, 26, 31, 36, 138, 148, 170, 175, 276, 357, 393, 423, 439, Нуль -символ, 215, Объект, 6, 8, 10, Оператор, 6, выбора, условный, 6, цикла, 6, 23, 31, 44, 80, 83, 99, 101, 136, 146, 148, 154, 198–199, 204–205, 214, 217, 222, 238, 248–249, 264–265, 267–268, 276, цикла по коллекции, Переменная интерфейсная, 39–40, 44, 47, 55, 173, Перечисление, 7, 130 ComboBoxStyle, 410 ContentAlignment, 401, 403 Предметный указатель, 465 DateTimeKind, 482 DayOfWeek, 482 DialogResult, 471–473, 516 FileAccess, 492 FileMode, 491, 495 FontStyle, 401–403 FormBorderStyle, 393, 400 FormStartPosition, 416 MessageBoxButtons, 472, 474 MessageBoxIcon, 472, 474 SeekOrigin, 492 ThreadPriority, Поле, 7, 15–17, 22–23, 30, 35, 43–44, 52, 55–57, 66, 70, 72, 75–76, 82–83, 85–86, 90–94, 96, 111, 118, 120, 123–124, 126–127, 129, 137–140, 143–144, 146–148, 150, 153–155, 158–159, 161–162, 165, 169–170, 172–173, 175–177, 206–210, 225, 255, 267, 270–271, 273, 276, 286– 287, 300, 307, 325, 328–329, 334, 345–346, 349–350, 352, 356, 362, 366–367, 369–370, 372, 374–375, 378–379, 383, 393–394, 409–410, 424–430, 436–440, 447, 450–452, 458–460, 465, 468, 477, 481, 505, Поток, 278–280, главный, 281–283, 287, 290, 295, 297–298, 301, 317, дочерний, 280, 282–283, 287, 290, 294, 297, 317, 320–321, приоритетный, 287, 295, фоновый, 278, 287, Пространство имен, 282, 323, 384, 394, 474–476, 479, 508, 516 Collections, 506, 508 Drawing, 393 Forms, 382 IO, 491 System, 232 Threading, 282 Windows, Псевдоним, 331, 478 object, Свойство, 12, 22, 23, 30–31, 35, 39, 45, 52–58, 111, 119–120, 126–127, 153– 154, 176, 217, 232, 256, 262, 267, 271, 288, 295, 298, 308, 324, 331, 378, 385, 411, 417, 459–460, 481–482, 517 BackColor, 392, 394 Bottom, 411, 426 Bounds, 402 CanRead, 492 CanWrite, 492 Capacity, 508 Checked, 226, 256 ClientSize, 424, 466 ContextMenuStrip, 459–460 Controls, 401, 403, 411 Count, 98–99 CurrentThread, 298, 301 Cursor, 465 Date, 481, 486 Day, 489 DayOfWeek, 482 DayOfYear, 482 DropDownStyle, 410 Font, 401–403, 411 ForeColor, 401 FormBorderStyle, 393, 400 Height, 386 Hour, 482 Icon, 401, 403 Image, 410 IsAlive, 288, 290, 324 IsBackground, 295, 324 Items, 410, 417, 449, 459 Keys, 515 Kind, 482 Left, 437 Length, 22–23, 111, 154, 217, 492 Глава 8 Location, 401 MaximizeBox, 400, 447 Menu, 447–448, 459 MenuItems, 448 Message, 232, 253, 256, 262, 270 Millisecond, 482 Minute, 483 Month, 482 Name, 70, 75–76, 118 Now, 270, 481, 517 Position, 492 Priority, 298, 324 Right, 410, 425 Second, 475–477, 479–480, 482 SelectedIndex, 410 Size, 148, 213–214, 400, 403, 410 Source, 233, 270 StackTrace, 233 StartPosition, 416 TargetSite, 233 Text, 22–23, 44, 63, 111, 151, 153–154, 287, 372, 385, 393, 400, 402, 460 TextAlign, 401 Ticks, 488 TimeOfDay, 481 Today, 482, 488 ToolTipText, 449 Top, 410–411 UtcNow, 481 Values, 515 Visible, 438 Width, 401 X, 74, 76, 80, 83 Y, 222, 349–350 Year, Символ управляющий, Синхронизация, 278, 302, Событие, 112–114, 117–120, 123, 126, 129, 169–170, 383–384, 394–395, 403, 411, 417, 438–439, 458, 460 CheckedChanged, 459 Click, 383, 402–403, 448–449, 459 KeyDown, 383 KeyUp, 383, 458 MouseEnter, 384, 394–395 MouseLeave, 384, 394–395, 466 MouseMove, 466 SelectedIndexChanged, 411, Среда разработки, 8, 257, 331, Структура, 7–8, 130 Color, 393, 401, 403 DateTime, 270, 480–484, 486–487, 489, 516–517 Int32, 331, 363 Size, 148, 213–214 TimeSpan, 481–482, 484, 487, обобщенная, экземпляр, 352, 360, 362–363, 377, 384, 393, 400, 480–484, 486–487, 489, Тип, 6–10, 40, 52–53, 59–64, 66, 75, 79, 82–83, 86–88, 90, 92–93, 98–99, 101–103, 112–113, 117, 123–127, 129–133, 135–137, 139–140, 143–144, 155, 169, 173–175, 178– 183, 188–193, 195–199, 202–205, 217–219, 222–226, 228–229, 232, 235, 238–240, 242, 244, 254, 256, 258–259, 262, 265, 271, 274, 276– 277, 280, 283, 300, 307, обобщенный, Указатель, 113, 179–183, 188, 191–193, 196–199, 202–209, 211–214, 216–219, Файл, 7, 388, 400–401, 409–412, 416– 417, 424, 429, 439–440, 447–449 Все права защищены. Книга или любая ее часть не может быть скопирована, воспроизведена в электронной или механической форме, в виде фотокопии, записи в память ЭВМ, репродукции или каким-либо иным способом, а также использована в любой информационной системе без получения разрешения от издателя. Копирование, воспроизведение и иное использование книги или ее части без согласия издателя является незаконными влечет уголовную, административную и гражданскую ответственность. Научно-популярное издание РОССИЙСКИЙ КОМПЬЮТЕРНЫЙ БЕСТСЕЛЛЕР Васильев Алексей Николаевич ПРОГРАММИРОВАНИЕ НА C# ДЛЯ НАЧИНАЮЩИХ Особенности языка Главный редактор Р. Фасхутдинов Ответственный редактор Е. Истомина Младший редактор Е. Минина Художественный редактор В. Брагина В оформлении обложки использована иллюстрация / Используется по лицензии от Подписано в печать 26.10.2018. Формат 70x100 Печать офсетная. Усл. печ. л. Тираж экз. Заказ ООО Издательство «Эксмо» 123308, Москва, ул. Зорге, д. 1. Тел 8 (495) 411-68-86. Home page: www.eksmo.ru E-mail: info@eksmo.ru Jндіруші: «ЭКСМО» АNБ Баспасы, 123308, МOскеу, Ресей, Зорге кPшесі, 1 Qй. Тел.: 8 (495) 411-68-86. Home page: www.eksmo.ru E-mail: info@eksmo.ru. Тауар белгісі: «Эксмо» Интернет-магазин : www.book24.ru Интернет-д+кен : www.book24.kz Импортёр в Республику Казахстан ТОО «РДЦ-Алматы». NазаWстан РеспубликасындаXы импорттаушы «РДЦ-Алматы» ЖШС. Дистрибьютор и представитель по приему претензий на продукцию, в Республике Казахстан ТОО «РДЦ-Алматы» NазаWстан Республикасында дистрибьютор жOне Pнім бойынша арыз-талаптарды Wабылдаушыны[ Pкілі «РДЦ-Алматы» ЖШС, Алматы W., Домбровский кPш., а, литер Б, офис Тел 8 (727) 251-59-90/91/92; E-mail: RDC-Almaty@eksmo.kz Jнімні[ жарамдылыW мерзімі шектелмеген. Сертификация туралы аWпарат сайтта: www.eksmo.ru/certifi Сведения о подтверждении соответствия издания согласно законодательству РФ о техническом регулировании можно получить на сайте Издательства «Эксмо» www.eksmo.ru/certifi cation Jндірген мемлекет: Ресей. Сертификация WарастырылмаXан EKSMO.RU новинки издательства https://eksmo.ru/b2b/ |