C#. Статьи о C#.

Статьи по теме языка программирования C#. Перейти »

Всякая всячина...

Статьи и заметки, которые могу быть интересны не зависимо от языка программирования, на котором они реализованы. Перейти »

 

C#. Статические методы и не только

Ключевое слово static

В этой статье я хочу рассказать об использовании ключевого слова static в программах, написанных на C#. Это ключевое слово может относится (может быть указано) к методам, полям, свойствам, событиям, конструкторам, операторам классов (и даже к самим классам, но об этом будет отдельный разговор). Ключевое слово static, указанное перед какой-либо сущностью класса, делает её статической. Это значит то, что данная сущность принадлежит не конкретному объекту класса, а всему классу, как типу данных. Другими словами, если обычное поле класса принадлежит объекту, и у каждого конкретного объекта есть как бы своя копия данного поля, то статическое поле одно для всего класса. Для примера, посмотрите на код ниже:

Агрегация и композиция. C#

Агрегация и композиция

В предыдущей статье я рассказывал о том, как можно заменить наследование используя композицию, если главное что Вам нужно — это избежать повторного написания некого кода. К примеру, Вам доступен какой-то класс (причем, его разработчиком можете быть даже не Вы), функциональность которого Вы хотите расширить. Вы можете написать класс-наследник (если исходный класс не помечен как sealed, о том что такое sealed-классы, я рассказывал в этой статье), получив при этом ряд «побочек», или воспользоваться принципом композиции. Но не одной композицией можно решать подобные проблемы. Есть еще так называемая агрегация. И в этой статье, я хочу вкратце рассказать о том, что же такое агрегация и в чем её отличие от композиции.

Альтернатива наследованию. C#

Замена наследованию

В этой статье я расскажу об альтернативе наследованию, а точнее, частичной альтернативе! Всё обсуждение будет вестись в контексте языка программирования C#. Читали предыдущую статью? В ней я касался темы применения наследования для повторного использования уже реализованной функциональности… И тогда я сказал, что применение наследования только для этой цели — не лучший вариант, и обещал рассказать как получить результат без использования наследования. Вот и настало время обсудить эту тему!

Давайте рассмотрим такой пример: у нас есть класс, который предназначен для отправки данных по сети (пусть называется он «Sender»).

SEALED классы в C#

Запрет наследования

В этой статье, я хочу сказать пару слов о явном запрете наследования. Точнее о том, как можно запретить использование написанного Вами класса, в качестве базового для других. Я постараюсь доступно и коротко обосновать зачем, и вообще это нужно ли это делать. Материал этой статьи так или иначе связан с темой наследования классов, так что, если Вы еще не знакомы с механизмом наследования, то можете не читать эту статью, а перейти к изучению основ. Вот Вам ссылка на урок, посвященный наследованию классов в C#. А для тех кто уже в теме, я продолжу повествование…

Ключевое слово this в C#

Использование this

В этой статье, я расскажу об использовании ключевого слова this в программах, написанных на C#. О том, для чего, как и когда его можно использовать. Сразу скажу, что почти всегда, можно обойтись без использования this, но «что это такое» знать нужно каждому программисту! И так, мы рассмотрим три контекста (случая, или варианта, если хотите) использования этого ключевого слова.

Вообще, ключевое слово this актуально «внутри класса», в его методах, свойствах и тому подомном.

Индексаторы в C#

Индексаторы в C#

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

Битовые операции в C# (Часть 4)

Исключающее ИЛИ

В предыдущих статьях, я рассказал про использование битовых сдвигов, битовых операций «И»  и «ИЛИ». В этой статье я расскажу об использовании операции побитового «ИСКЛЮЧАЮЩЕГО ИЛИ». Эта битовая операция является весьма интересной по той причине, что она является симметричной. Это значит, что если наложить на определенное число какую-то битовую маску, а потом на результат это операции снова наложить эту же маску, то мы снова получим исходное число. И эта особенность может пригодиться, например в шифрующих программах, которые используют симметричные алгоритмы шифрования.

Битовый операции в C# (Часть 3)

Операции сдвига

В двух предыдущих статьях я рассказывал о битовых операциях «И» («&») и «ИЛИ» («|»). В этих статья я рассказывал как узнать с помощью битовой операции «И» значение определенного бита, и о том, как с помощью битовой операции «ИЛИ» установить значение нужного бита. Вот ссылки на те статьи: Битовый операции в C# (Часть 1) и Битовый операции в C# (Часть 2). В этой статье я расскажу про операции сдвигов. На самом деле, мы уже сталкивались с подобными операциями. Например, в предыдущей статье, когда мы рассматривали операцию «ИЛИ», мы уже делали битовые сдвиги, когда использовали наложение битовых масок вида 0x01 (это 00000001 в двоичной системе счисления), 0x02 (это 00000010 в двоичной системе счисления), 0x04 (это 00000100 в двоичной системе счисления)… Мы «передвигали» единицу, а точнее не только единицу, а все восемь битов числа на одну позицию влево! И делали мы это в уме, а не средствами C#.

Битовый операции в C# (Часть 2)

Битовые операции

В предыдущей статье я рассказывал про битовую операцию «И», и о том как и где она может пригодиться на практике. Операцию побитового «И» мы использовали для «считывания» значения нужного нам бита некого числа, при помощи наложения битовой маски. В этой статье я расскажу о том как «устанавливать» значение нужно бита числа. Для этого на понадобится операция битового «ИЛИ». Если Вы еще не читали предыдущую статью, на которую я давал ссылку ранее, то рекомендую это сделать, так как настоящая статья будет с ней пересекаться.

Давайте вспомним условие задачи из предыдущего урока, у нас была воображаемая система (состоящая из восьми блоков), которая периодически отправляла нам информацию о состоянии (работает или не работает) каждого блока в виде однобайтового числа, где каждый бит числа соотносился с состоянием одного из блоков.

Битовый операции в C# (Часть 1)

Битовые операции

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

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