ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

acer ado.net amd asp.net c sharp c# cms css exceptions google html ipad iphone it бизнес javascript jquery linq microsoft mysql net nokia nokia lumia samsung seo silverlight sql surface tsql windows 8 windows blue windows phone windows rt xna безопасность библиотека вопросы на собеседовании интересные проекты интернет интернет магазин исключения книга книги компьютерная безопасность компьютерные игры контролы курсы по программированию логированние исключений мобильные приложения монетизация сайтов наушники новости новости it новости microsoft новости интернет новости технологий ноутбук ноутбуки обработка исключений оптимизация острова периферия планшет планшеты поддержка сайтов поисковое продвижение программы продвижение продвижение сайта продвижение сайтов рабство разработка игр разработка сайтов раскрутка сайта рекламные технологии смартфон смартфоны собеседование создание сайтов средства разработки туризм фриланс хостинг яндекс
  << Предыдущий пост       Следующий пост >>  
От: ironMan
15. августа 2011 18:15

Одним из преимуществ использования свойств является реализация методики отложенной инициализации. При этой методике некоторые члены класса не инициализируются, пока не потребуется. Отложенная инициализация дает преимущества, если у вас имеется класс с членами, на которые редко ссылаются и на инициализацию которых уходит много времени и ресурсов. Типичным примером могут служить ситуации, в которых требуется считать значения из базы данных или получить данные по сети. Если вам известно, что на эти члены ссылаются редко, а на их инициализацию требуется много ресурсов, то инициализацию полей можно отложить до вызова методов получателей. Для примера давайте рассмотрим класс, имеющий свойство, значение которого необходимо получать из базы данных. Допустим, у вас имеется многопользовательская система. При поставке этой системы заказчику вы продаете определенное количество лицензий. Количество лицензий означает количество экземпляров программы, которые могут быть одновременно запущены. Данные о количестве уже запущенных экземпляров программы хранятся на удаленном сервере в базе данных. Получить это значение возможно, лишь затратив большое количество ресурсов. Вашему классу необходима проверка лицензии только в редких случаях. Поэтому нет необходимости включать код для получения значения о количестве лицензий в конструктор класса. Проще включить код для инициализации поля в функцию получатель соответствующего свойства.



class Customer
{
private int licenseCount;
public int LicenseCount
{
get
{
/* get licenses count from remote */
/* server and store it in local variable */
return licenseCount;
}
}

...
}



( отрывок из книги В. В. Лабор "Си Шарп: Создание приложений для Windows" )



Постовой: Canon EOS 5D Mark 3 подробный обзор, тесты, снимки, характеристики.

Похожие записи


Виртуальные свойства в C#
Свойства, как и методы, могут быть перегружены в производных классах. Для свойств также могут задаваться модификаторы virtual, override или abstract. Подробно о наследовании говорилось в главе «Методы», сейчас я лишь хочу еще раз привести подробный пример использования механизма виртуализации с применением свойств: [code:c#] using System; enum COLORS { RE...

Многопоточный HTTP сервер на C#
Оригинал статьи здесь: Многопоточный сервер на C# за 15 минут Автор (на хабре): ertaquo C# довольно простой и гибкий язык. Вместе с .NET поставляется довольно много уже готовых классов, что делает его еще проще. Настолько, что вполне можно написать простой многопоточный HTTP-сервер для отдачи статического содержимого всего за 15 минут. Можно было бы использовать уже...

Как получить информацию о накопителях информации и/или логических дисках на C# ?
В .Net Framework для получения информации о накопителе служит класс DriveInfo из пространства имен System.IO. У него есть статический метод GetDrives(), который позволяет получить массив объектов класса DriveInfo. Каждый из элементов массива соответствует накопителю информации или логическому диску на одном из накопителей. Каждый из возвращенных объектов содержит осно...

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий