-->

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

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

Полное руководство. С# 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] для удаления материала

1 ... 39 40 41 42 43 44 45 46 47 ... 188 ВПЕРЕД
Перейти на страницу:

Следует, однако, подчеркнуть, что переменные ссылки на строки (т.е. объекты типаstring) подлежат изменению, а следовательно, они могут ссылаться на другой объект.Но содержимое самого объекта типа string не меняется после его создания.

Для того чтобы стало понятнее, почему неизменяемые строки не являются помехой,воспользуемся еще одним методом обращения со строками: Substring(). Этот методвозвращает новую строку, содержащую часть вызывающей строки. В итоге создается новый строковый объект, содержащий выбранную подстроку, тогда как исходнаястрока не меняется, а следовательно, соблюдается принцип постоянства строк. Нижеприведена рассматриваемая здесь форма метода Substring():string Substring(int индекс_начала, int длина)

где индекс_начала обозначает начальный индекс исходной строки, а длина — длинувыбираемой подстроки.

Ниже приведена программа, в которой принцип постоянства строк демонстрируется на примере использования метода Substring().// Применить метод Substring().using System;class SubStr { static void Main() { string orgstr = "В C# упрощается обращение со строками."; // сформировать подстроку string substr = orgstr.Substring(5, 20); Console.WriteLine("orgstr: " + orgstr); Console.WriteLine("substr: " + substr); }}

Вот к какому результату приводит выполнение этой программы.orgstr: В C# упрощается обращение со строками.substr: упрощается обращение

Как видите, исходная строка из переменной orgstr не меняется, а выбранная изнее подстрока содержится в переменной substr.

И последнее замечание: несмотря на то, что постоянство строк обычно не является ни ограничением, ни помехой для программирования на С#, иногда оказываетсяполезно иметь возможность видоизменять строки. Для этой цели в C# имеется классStringBuilder, который определен в пространстве имен System.Text. Этот класспозволяет создавать строковые объекты, которые можно изменять. Но, как правило,в программировании на C# используется тип string, а не класс StringBuilder.Применение строк в операторах switch

Объекты типа string могут использоваться для управления оператором switch.Это единственный нецелочисленный тип данных, который допускается применятьв операторе switch. Благодаря такому применению строк в некоторых сложных ситуациях удается найти более простой выход из положения, чем может показаться напервый взгляд. Например, в приведенной ниже программе выводятся отдельные цифры, соответствующие словам "один", "два" и "три".// Продемонстрировать управление оператором switch посредством строк.using System;class StringSwitch { static void Main() { string[] strs = { "один", "два", "три", "два", "один" }; foreach(string s in strs) { switch(s) { case "один": Console.Write(1); break; case "два": Console.Write(2); break; case "три": Console.Write(3); break; } } Console.WriteLine(); }}

При выполнении этой программы получается следующий результат.12321

ГЛАВА 8. Подробнее о методах и классах

В данной главе возобновляется рассмотрение классови методов. Оно начинается с пояснения механизмауправления доступом к членам класса. А затем обсуждаются такие вопросы, как передача и возврат объектов, перегрузка методов, различные формы метода Main(),рекурсия и применение ключевого слова static.Управление доступом к членам класса

Поддержка свойства инкапсуляции в классе дает дваглавных преимущества. Во-первых, класс связывает данныес кодом. Это преимущество использовалось в предыдущихпримерах программ, начиная с главы 6. И во-вторых, класспредоставляет средства для управления доступом к его членам. Именно эта, вторая преимущественная особенностьи будет рассмотрена ниже.

В языке С#, по существу, имеются два типа членов класса: открытые и закрытые, хотя в действительности дело обстоит немного сложнее. Доступ к открытому члену свободно осуществляется из кода, определенного за пределамикласса. Именно этот тип члена класса использовался в рассматривавшихся до сих пор примерах программ. А закрытый член класса доступен только методам, определеннымв самом классе. С помощью закрытых членов и организуется управление доступом.

Ограничение доступа к членам класса является основополагающим этапом объектно-ориентированного программирования, поскольку позволяет исключить неверное использование объекта. Разрешая доступ к закрытымданным только с помощью строго определенного ряда методов, можно предупредитьприсваивание неверных значений этим данным, выполняя, например, проверку диапазона представления чисел. Для закрытого члена класса нельзя задать значение непосредственно в коде за пределами класса. Но в то же время можно полностью управлятьтем, как и когда данные используются в объекте. Следовательно, правильно реализованный класс образует некий "черный ящик", которым можно пользоваться, но внутренний механизм его действия закрыт для вмешательства извне.Модификаторы доступа

Управление доступом в языке C# организуется с помощью четырех модификаторовдоступа: public, private, protected и internal. В этой главе основное вниманиеуделяется модификаторам доступа public и private. Модификатор protected применяется только в тех случаях, которые связаны с наследованием, и поэтому речь о немпойдет в главе 11. А модификатор internal служит в основном для сборки, которая вшироком смысле означает в C# разворачиваемую программу или библиотеку, и поэтому данный модификатор подробнее рассматривается в главе 16.

Когда член класса обозначается спецификатором public, он становится доступным из любого другого кода в программе, включая и методы, определенные в другихклассах. Когда же член класса обозначается спецификатором private, он может бытьдоступен только другим членам этого класса. Следовательно, методы из других классовне имеют доступа к закрытому члену (private) данного класса. Как пояснялось в главе6, если ни один из спецификаторов доступа не указан, член класса считается закрытым для своего класса по умолчанию. Поэтому при создании закрытых членов классаспецификатор private указывать для них необязательно.

Спецификатор доступа указывается перед остальной частью описания типа отдельного члена. Это означает, что именно с него должен начинаться оператор объявлениячлена класса. Ниже приведены соответствующие примеры.public string errMsg;private double bal;private bool isError(byte status) { // ...

Для того чтобы стали более понятными отличия между модификаторами publicи private, рассмотрим следующий пример программы.// Отличия между видами доступа public и private к членам класса.using System;class MyClass { private int alpha; // закрытый доступ, указываемый явно int beta; // закрытый доступ по умолчанию public int gamma; // открытый доступ // Методы, которым доступны члены alpha и beta данного класса. // Член класса может иметь доступ к закрытому члену этого же класса. public void SetAlpha(int а) { alpha = а; } public int GetAlpha() { return alpha; } public void SetBeta(int a) { beta = a; } public int GetBeta() { return beta; }}class AccessDemo { static void Main() { MyClass ob = new MyClass(); // Доступ к членам alpha и beta данного класса // разрешен только посредством его методов. ob.SetAlpha(-99); ob.SetBeta(19); Console.WriteLine("ob.alpha равно " + ob.GetAlpha()); Console.WriteLine("ob.beta равно " + ob.GetBeta ()); // Следующие виды доступа к членам alpha и beta // данного класса не разрешаются. // ob.alpha = 10; // Ошибка! alpha - закрытый член! // ob.beta =9; // Ошибка! beta - закрытый член! // Член gamma данного класса доступен непосредственно, // поскольку он является открытым. ob.gamma = 99; }}

Как видите, в классе MyClass член alpha указан явно как private, член beta становится private по умолчанию, а член gamma указан как public. Таким образом,члены alpha и beta недоступны непосредственно из кода за пределами данного класса, поскольку они являются закрытыми. В частности, ими нельзя пользоваться непосредственно в классе AccessDemo. Они доступны только с помощью таких открытых(public) методов, как SetAlpha() и GetAlpha(). Так, если удалить символы комментария в начале следующей строки кода:// ob.alpha = 10; // Ошибка! alpha - закрытый член!

1 ... 39 40 41 42 43 44 45 46 47 ... 188 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название