-->

Полное руководство. С# 4.0

На нашем литературном портале можно бесплатно читать книгу Полное руководство. С# 4.0, Шилдт Герберт-- . Жанр: Программирование. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Полное руководство. С# 4.0
Название: Полное руководство. С# 4.0
Дата добавления: 16 январь 2020
Количество просмотров: 264
Читать онлайн

Полное руководство. С# 4.0 читать книгу онлайн

Полное руководство. С# 4.0 - читать бесплатно онлайн , автор Шилдт Герберт

В этом полном руководстве по C# 4.0 — языку программирования, разработанному специально для среды .NET, — детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.

В данной книге вы найдете:- Полное описание средств языка C#- Подробное рассмотрение новых средств в версии C# 4.0, в том числе PLINQ, библиотеку TPL, именованные и необязательные аргументы, динамический тип данных и многое другое- Сотни простых и понятных примеров программ с комментариями.- Самый полный источник информации по C#Благодаря поддержке параллельного языка интегрированных запросов (PLINQ) и библиотеки распараллеливания задач (TPL) версия 4.0 стала новой вехой в программировании на C#, и поэтому Герберт Шилдт, автор лучших книг по программированию, обновил и расширил свое классическое руководство, чтобы охватить в нем эти и другие нововведения. В книге подробно описываются языковые средства C#, даются профессиональные рекомендации и приводятся сотни примеров программ, охватывающих все аспекты программирования на C#, включая синтаксис, ключевые слова и основные библиотеки, не говоря уже о таких новшествах, как PLINQ, TPL, динамический тип данных, а также именованные и необязательные аргументы.Это необходимое каждому программирующему на C# справочное руководство написано простым и доступным языком, благодаря которому Герберт Шилдт стал таким популярным. В книге найдут ответы на насущные вопросы по C# как начинающие, так и опытные программисты.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

Перейти на страницу:

Вот к какому результату приводит выполнение этой программы (опять же все зависит от конкретных настроек языковых и региональных параметров локализации базового программного обеспечения).Время: 11:19 AMВремя 24-часовом формате: 11:19Дата: Thu Feb 11, 2010Эра: A.D.Время в секундах: 11:19:40 AMДень месяца в формате m: February 11Минуты в формате т: 19Форматирование промежутков времени

Начиная с версии 4.0, в среде .NET Framework появилась возможность форматировать объекты типа TimeSpan — структуры, представляющей промежуток времени.Объект типа TimeSpan может быть получен самыми разными способами, в том числеи в результате вычитания одного объекта типа DateTime из другого. И хотя форматировать объекты типа TimeSpan приходится нечасто, о такой возможности все же стоитупомянуть вкратце.

По умолчанию в структуре TimeSpan поддерживаются три стандартных спецификатора формата даты и времени: с, g и G. Они обозначают инвариантную формупромежутка времени, короткую и длинную форму с учетом культурной среды соответственно (последняя форма всегда включает в себя дни). Кроме того, в структуреTimeSpan поддерживаются специальные спецификаторы формата даты и времени,приведенные в табл. 22.9. Вообще говоря, если один из этих спецификаторов используется в отдельности, его нужно предварить символом %.

Таблица 22.9. Символы-заполнители специального формата промежутка времениСимвол-заполнительНазначениеd, dd, ddd, dddd, ddddd, dddddd, dddddddЦелые дни. Если указано несколько символов-заполнителей d, то отображается, по крайней мере, указанное количество цифр с начальными нулями, если требуетсяh, hhЧасы (не считая тех, что составляют часть целого дня). Если указано hh, то отображаются две цифры с начальными нулями, если требуетсяm, mmМинуты (не считая тех, что составляют часть целого часа). Если указано mm, то отображаются две цифры с начальными нулями, если требуетсяs, ssСекунды (не считая тех, что составляют часть целой минуты). Если указано ss, то отображаются две цифры с начальными нулями, если требуетсяf, ff, fff, ffff, fffff, ffffff, fffffffДробные доли секунды. Количество символов-заполнителей f обозначает точность представления, а остальные цифры отбрасываютсяF, FF, FFF, FFFF, FFFFF, FFFFFF, FFFFFFFДробные доли секунды. Количество символов-заполнителей F обозначает точность представления, а остальные цифры отбрасываются и конечные нули не отображаются

В приведенной ниже программе демонстрируется форматирование объектов типаTimeSpan на примере отображения времени, которое приблизительно требуется длявывода на экран 1000 целых значений в цикле for.// Отформатировать объект типа TimeSpan.using System;class TimeSpanDemo { static void Main() { DateTime start = DateTime.Now; // Вывести числа от 1 до 1000. for(int i = 1; i <= 1000; i++) { Console.Write(i + " "); if((i % 10) == 0) Console.WriteLine(); } Console.WriteLine(); DateTime end = DateTime.Now; TimeSpan span = end - start; Console.WriteLine("Время выполнения: {0:c}", span); Console.WriteLine("Время выполнения: {0:g}", span); Console.WriteLine("Время выполнения: {0:G}", span); Console.WriteLine("Время выполнения: 0.{0:fff} секунды", span); }}

Выполнение этой программы приводит к следующему результату, который и вэтом случае зависит от конкретных настроек языковых и региональных параметровлокализации базового программного обеспечения, а также от загрузки системы задачами и ее быстродействия.981 982 983 984 985 986 987 988 989 990991 992 993 994 995 996 997 998 999 1000Время выполнения: 00:00:00.0140000Время выполнения: 0:00:00.014Время выполнения: 0:00:00:00.0140000Время выполнения: 0.014 секундыФорматирование перечислений

В C# допускается также форматировать значения, определяемые в перечислении.Вообще говоря, значения из перечисления могут отображаться как по имени, так ипо значению. Спецификаторы формата перечислений сведены в табл. 22.10. Обратитеособое внимание на форматы G и F. Перед перечислениями, которые должны представлять битовые поля, следует указывать атрибут Flags. Как правило, в битовых полях хранятся значения, обозначающие отдельные двоичные разряды и упорядоченныепо степени числа 2. При наличии атрибута Flags имена всех битовых составляющихформатируемого значения, если, конечно, это действительное значение, отображаются с помощью спецификатора G. А с помощью спецификатора F отображаются именавсех битовых составляющих форматируемого значения, если оно составляется путемлогического сложения по ИЛИ двух иди более полей, определяемых в перечислении.

Таблица 22.10. Спецификаторы формата перечисленийСпецификаторНазначениеDОтображает значение в виде десятичного целого числаdТо же, что и DFОтображает имя значения. Если это значение можно создать путем логического сложения по ИЛИ двух или более полей, определенных в перечислении, то данный спецификатор отображает имена всех битовых составляющих заданного значения, причем независимо от того, задан атрибут Flags или нетfТо же, что и FGОтображает имя значения. Если перед форматируемым перечислением указывается атрибут Flags, то данный спецификатор отображает имена всех битовых составляющих заданного значения, если, конечно, это допустимое значениеgТо же, что и GXОтображает значение в виде шестнадцатеричного целого числа. Для отображения как минимум восьми цифр форматируемое значение дополняется (при необходимости) начальными нулямиXТо же, что и X

В приведенной ниже программе демонстрируется применение спецификаторовформата перечислений.// Отформатировать перечисление.using System;class EnumFmtDemo { enum Direction { North, South, East, West } [Flags] enum Status { Ready=0x1, OffLine=0x2, Waiting=0x4, TransmitOK=0x8, ReceiveOK=0x10, OnLine=0x20 } static void Main() { Direction d = Direction.West; Console.WriteLine("{0:G}", d); Console.WriteLine("{0:F}", d); Console.WriteLine("{0:D}", d); Console.WriteLine("{0:X}", d); Status s = Status.Ready | Status.TransmitOK; Console.WriteLine("{0:G}", s); Console.WriteLine("{0:F}", s); Console.WriteLine("{0:D}", s); Console.WriteLine("{0:X}", s); }}

Ниже приведен результат выполнения этой программы.WestWest300000003Ready, TransmitOKReady, TransmitOK900000009

ГЛАВА 23. Многопоточное программирование. Часть первая: основы

Среди многих замечательных свойств языка С# особоеместо принадлежит поддержке многопоточного программирования. Многопоточная программа состоитиз двух иди более частей, выполняемых параллельно. Каждая часть такой программы называется потоком и определяет отдельный путь выполнения команд. Таким образом,многопоточная обработка является особой формой многозадачности.Многопоточное программирование опирается на целый ряд средств, предусмотренных для этой цели в самомязыке С#, а также на классы, определенные в среде .NETFramework. Благодаря встроенной в C# поддержке многопоточной обработки сводятся к минимуму или вообщеустраняются многие трудности, связанные с организациеймногопоточной обработки в других языках программирования. Как станет ясно из дальнейшего, поддержка в C#многопоточной обработки четко организована и простадля понимания.С выпуском версии 4.0 в среде .NET Framework появились два важных дополнения, имеющих отношение к многопоточным приложениям. Первым из них является TPL(Task Parallel Library — Библиотека распараллеливания задач), а вторым — PLINQ (Parallel LINQ — Параллельныйязык интегрированных запросов). Оба дополнения поддерживают параллельное программирование и позволяют использовать преимущества, предоставляемые многопроцессорными (многоядерными) компьютерами в отношенииобработки данных. Кроме того, библиотека TPL упрощаетсоздание многопоточных приложений и управление ими.В силу этого многопоточная обработка, опирающаяся на23TPL, рекомендуется теперь как основной подход к разработке многопоточных приложений. Тем не менее накопленный опыт создания исходной многопоточной подсистемы по-прежнему имеет значение по целому ряду причин. Во-первых, уже существуетнемалый объем унаследованного кода, в котором применяется первоначальный подход к многопоточной обработке. Если приходится работать с таким кодом или сопровождать его, то нужно знать, как работает исходная многопоточная система. Во-вторых,в коде, опирающемся на TPL, могут по-прежнему использоваться элементы исходноймногопоточной системы, и особенно ее средства синхронизации. И в-третьих, несмотря на то что сама библиотека TPL основывается на абстракции, называемой задачей,она по-прежнему неявно опирается на потоки и потоковые средства, описываемыев этой главе. Поэтому для полного усвоения и применения TPL потребуются твердыезнания материала, излагаемого в этой главе.И наконец, следует особо подчеркнуть, что многопоточная обработка представляетсобой довольно обширную тему, и поэтому подробное ее изложение выходит за рамки этой книги. В этой и последующей главах представлен лишь беглый обзор даннойтемы и демонстрируется ряд основополагающих методик. Следовательно, материалэтих глав может служить введением в эту важную тему и основанием для дальнейшегоее самостоятельного изучения.Основы многопоточной обработки

Перейти на страницу:
Комментариев (0)
название