Информация
- В рейтинге
- Не участвует
- Откуда
- Россия
- Зарегистрирован
- Активность
Специализация
Десктоп разработчик, Архитектор программного обеспечения
От 4 000 $
Git
.NET
Проектирование архитектуры приложений
C++
Qt
QML
WPF
Visual Studio
C#
Разработка программного обеспечения
P.S. 0 * 25 = 0…
Т.е. всё еще куда более запущено! При каждом вызове создаётся синтаксическое дерево с использованием рефлексии!
[Conditional(«DEBUG»)], конечно, отчасти дело спасает.
Однако если у класса мало свойств и их значения почти всегда разные, что очень характерно для классов, реализующих логику приложения или модель данных, то DependencyObject — не лучшее решение. Свойства зависимости хранятся вне экземпляров объектов в глобальной хеш-таблице, и само значение свойства занимает гораздо больше памяти, чем необходимо под экземпляр типа свойства. Поэтому использование INotifyPropertyChanged в модели данных — более чем оправдано.
Кроме того, нельзя получить прямой доступ к значению свойства зависимости из потока, которому не принадлежит DispatcherObject, даже на чтение.
d.А во вторых, вы понимаете, что каждый вызов приводит к созданию новой копии делегата, передаваемого в качестве параметра?
Для того, чтобы установить тотальный контроль за интернетом, необходимо полностью уничтожить его существующую физическую инфраструктуру, и построить новый интернет на оборудовании и протоколах, которые предотвращают P2P связи и туннелирование трафика любого рода. Это должна будет быть централизованная сеть. Никто на такой шаг никогда не пойдет.
Альтернативный маргинальный вариант — считать, что любой передаваемый пользователем трафик, неподдающийся анализу — нелегальный. Задача создания системы анализа пользовательского трафика в реальном времени, при учете практически бесконечного многообразия протоколов — невыполнима, и кроме того незаконна — она нарушает права человека.
Чувствую, не далек тот час, когда в сырых подвалах правоохранительных органов будут пытками добывать пароли от зашифрованных дисков.
Остаётся надеяться, что «борцы за права богатых правообладателей», участники специальной олимпиады для технически неграмотных лицемеров, а ля «я-несу-справедливость-for-the-great-justice, но за бешенное бабло», наконец поймут, что технически невозможно контролировать сегодняшний интернет, и начнут наконец бороться с настоящими преступлениями — повсеместной коррупцией и тотальным разворовыванием бюджета в стиле «распил-откат».
Выводы статьи совершенно некорректны.
1. Все классы структур нужно делать неизменяемыми (immutable).
2. Структуры нужно использовать тогда, когда это удобно.
3. Структуры, передаваемые в методы по ссылке (ключевые слова ref и out) передаются, кто бы мог подумать — по ссылке, а не по значению — копирования не происходит, производительность не страдает.
4. Необходимо соблюдать инкапсуляцию. Если метод класса возвращает некоторый объект, модификация которого затронет состояние экземпляра класса, то класс должен позаботится о предотвращении такой модификации. Например, если требуется вернуть внутренний массив, нужно вернуть Array.AsReadOnly(source) а не сам source.
Это же всё прописные истины ООП, которые верны для любого объектно-ориентированного языка верхнего уровня.
P.S. К сведению для владельцев 3D Vidion — nVidia к слову уже наладила несколько онлайн-трансляций в 3D. Чтобы посмотреть нужен Silverlight 4, свежие дровишки.