Герберт Шилдт - C# 4.0: полное руководство

Тут можно читать онлайн Герберт Шилдт - C# 4.0: полное руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ООО И.Д. Вильямс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# 4.0: полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    ООО И.Д. Вильямс
  • Год:
    2011
  • Город:
    Москва -- Киев
  • ISBN:
    978-5-8459-1684-6
  • Рейтинг:
    3.93/5. Голосов: 141
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Герберт Шилдт - C# 4.0: полное руководство краткое содержание

C# 4.0: полное руководство - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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


Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок

C# 4.0: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// Применить инициализаторы объектов в свойствах

using System;

// Применить инициализаторы объектов в свойствах.

class MyClass {

// Теперь это свойства,

public int Count { get; set; }

public string Str { get; set; }

}

class ObjlnitDemo {

static void Main() {

// Сконструировать объект типа MyClass с помощью инициализаторов объектов.

MyClass obj = new MyClass {

Count = 100, Str = "Тестирование" };

Console.WriteLine (obj.Count + " " + obj.Str);

}

}

Как видите, свойства Countи Strустанавливаются в выражениях с инициализатором объекта. Приведенная выше программа дает такой же результат, как и программа из главы 8, а именно:

100 Тестирование

Как пояснялось в главе 8, синтаксис инициализатора объекта оказывается наиболее пригодным для работы с анонимными типами, формируемыми в LINQ-выражениях. А в остальных случаях чаще всего используется синтаксис обычных конструкторов.

Ограничения, присущие свойствам

Свойствам присущ ряд существенных ограничений. Во-первых, свойство не определяет место для хранения данных, и поэтому не может быть передано методу в качестве параметра refили out. Во-вторых, свойство не подлежит перегрузке. Наличие двух разных свойств с доступом к одной и той же переменной допускается, но это, скорее, исключение, чем правило. И наконец, свойство не должно изменять состояние базовой переменной при вызове аксессора get. И хотя это ограничительное правило не соблюдается компилятором, его нарушение считается семантической ошибкой. Действие аксессора getне должно носить характер вмешательства в функционирование переменной.

Применение модификаторов доступа в аксессорах

По умолчанию доступность аксессоров setи getоказывается такой же, как и у индексатора и свойства, частью которых они являются. Так, если свойство объявляется как public, то по умолчанию его аксессоры setи getтакже становятся открытыми ( public). Тем не менее для аксессора setили getможно указать собственный модификатор доступа, например private. Но в любом случае доступность аксессора, определяемая таким модификатором, должна быть более ограниченной, чем доступность, указываемая для его свойства или индексатора.

Существует целый ряд причин, по которым требуется ограничить доступность аксессора. Допустим, что требуется предоставить свободный доступ к значению свойства, но вместе с тем дать возможность устанавливать это свойство только членам его класса. Для этого достаточно объявить аксессор данного свойства как private. В приведенном ниже примере используется свойство MyProp, аксессор setкоторого указан как private.

// Применить модификатор доступа в аксессоре.

using System;

class PropAccess {

int prop; // поле, управляемое свойством MyProp

public PropAccess() { prop = 0; }

/* Это свойство обеспечивает доступ к закрытой переменной экземпляра prop. Оно разрешает получать значение переменной prop из любого кода, но устанавливать его — только членам своего класса. */

public int MyProp {

get {

return prop;

}

private set { // теперь это закрытый аксессор

prop = value;

}

}

// Этот член класса инкрементирует значение свойства MyProp.

public void IncrProp() {

MyProp++; // Допускается в том же самом классе.

}

}

// Продемонстрировать применение модификатора

//доступа в аксессоре свойства,

class PropAccessDemo {

static void Main() {

PropAccess ob = new PropAccess() ;

Console.WriteLine("Первоначальное значение ob.MyProp: " + ob.MyProp);

// ob.MyProp = 100; // недоступно для установки

ob.IncrProp();

Console.WriteLine("Значение ob.MyProp после инкрементирования: " + ob.MyProp);

}

}

В классе PropAccessаксессор setуказан как private. Это означает, что он доступен только другим членам данного класса, например методу IncrProp(),но недоступен для кода за пределами класса PropAccess. Именно поэтому попытка Присвоить свойству ob.MyPropзначение в классе PropAccessDemoзакомментирована.

Вероятно, ограничение доступа к аксессорам оказывается наиболее важным для работы с автоматически реализуемыми свойствами. Как пояснялось выше, создать автоматически реализуемое свойство только для чтения или же только для записи нельзя, поскольку оба аксессора, getи set, должны быть указаны при объявлении такого свойства. Тем не менее добиться желаемого результата все же можно, объявив один из аксессоров автоматически реализуемого свойства как private. В качестве примера ниже приведено объявление автоматически реализуемого свойства Lengthдля класса FailSoftArray, которое фактически становится доступным только для чтения.

public int Length { get; private set; }

Свойство Lengthможет быть установлено только из кода в его классе, поскольку его аксессор setобъявлен как private. А изменять свойство Lengthза пределами его класса не разрешается. Это означает, что за пределами своего класса свойство, по существу, оказывается доступным только для чтения. Аналогичным образом можно объявить и свойство Error, как показано ниже.

public bool Error { get; private set; }

Благодаря этому свойство Errorстановится доступным для чтения, но не для установки за пределами класса FailSoftArray.

Для опробования автоматически реализуемых вариантов свойств Lengthи Errorв классе FailSoftArrayудалим сначала переменные lenи ErrFlag, поскольку они больше не нужны, а затем заменим каждое применение переменных lenи ErrFlagсвойствами Lengthи Errorв классе FailSoftArray. Ниже приведен обновленный вариант класса FailSoftArrayвместе с методом Main(),демонстрирующим его применение.

// Применить автоматически реализуемые и доступные

// только для чтения свойства Length и Error.

using System;

class FailSoftArray {

int[] a; // ссылка на базовый массив

// Построить массив по заданному размеру,

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# 4.0: полное руководство отзывы


Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x