Архив категорий: C#

C#. Обработка исключений и блок finally

Блок finally

В этой статье я хочу рассказать об использовании ключевого слова finally в программах, написанных на C#. Тема данной статьи касается вопроса обработки исключительных ситуаций, и уже затрагивалась в уроках базового курса (Урок № 12. Обработка ошибокУрок №14. Детализация при обработке ошибок), но сегодня я расскажу о еще одном инструменте из этой области. В упомянутых выше уроках, я описывал подход к обработке ошибок, в соответствии с которым, код разделялся на два блока. В одном находился потенциально опасный код, а в другом — код обработки, возникших ошибок. Схематично это выглядит примерно так:

Способы инициализации объектов в C#

Инициализация объектов

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

Первый случай — это простое создание объекта с вызовом конструктора без аргументов. Подобные ситуации случаются если нам нужно просто создать объект, и мы не знаем подробностей, о том, как его инициализировать в данном контексте. Другими словами, конструктор без аргументов отлично справляется с поставленной задачей и большее нам не нужно. На практике, это выглядит так:

Пространства имен в C#

Пространства имен

В этой статье я хочу рассказать о пространствах имен в C#. Пространство имен (namespace) в C# представляет собой некий контейнер для логического объединения именованных сущностей, таких как классы, интерфейсы, перечисления и тому подобное. Для чего нужны такие контейнеры? Ну во-первых, пространства имен позволяют логически группировать классы и другие сущности, а во-вторых, позволяют использовать одни и те же имена для сущностей в разных пространствах имен. Причем, вторая функция даже больше востребована, так как логическую группировку тех же классов, программист может игнорировать, особенно, если классов не так много, а вот создать два класса с одним именем уже нельзя, не даст компилятор! 

C#. Переопределение и скрытие методов

Переопределение и скрытие методов

В этой статье, я расскажу об использовании ключевых слов new и override применительно к методам классов в C#. Я не буду затрагивать все тонкости использования этих ключевых слов в данном контексте, а наоборот, постараюсь донести самые основные моменты в доступной форме. Скажу сразу, что тема настоящей статьи актуальна при условии, что Вы знакомы с основами ООП (объектно-ориентированного программирования). И так, к делу!

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

C#. Использование внешних библиотек

Использование библиотек

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

Давайте создадим новый проект консольного приложения (как создавать проекты консольных приложений, я рассказывал в уроке № 3 базового курса).

C#. Создание библиотек (сборок)

Создание библиотек

Рано или поздно, вы придете к мысли об объединении своих собственных наработок в единый пакет (ну или в несколько пакетов), чтобы созданные один раз классы можно было использовать в разных программах. В C# такие пакеты называют сборками. Сборки могут быть оформлены в виде DLL, но не так называемых нативных DLL, а специализированных, .NET DLL (часто говорят, «нэтовских» DLL). Вот о создании таких DLL я и расскажу в этой статье.

Первым делом, мы создадим новый проект в Visual Studio (о том, как скачать и установить MS Visual Studio я рассказывал в уроке № 2 базового курса C#).

C#. Абстрактные классы или интерфейсы

Абстрактные классы или интерфейсы

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

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

Работа с INI-файлами в C#

Работа с INI-файлами

В этой статье я хочу рассказать и показать как можно работать с INI-файлами в программах, написанных на C#. На самом деле, сейчас INI-файлы используются достаточно редко. Точнее они используются редко в разрабатываемых сейчас программах, но есть огромное количество программ, который были написаны весьма давно, в пору популярности INI-файлов. И Вам может даже придется сопровождать  такие программы (как мне в своё время), или же Вам нужно будет организовать доступ из своей программы к INI-файлу, который создается другой системой. В любом случае, умение работать с INI-файлами является еще актуальной задачей…

Абстрактные классы в C#

Абстрактные классы

В предыдущих статьях (sealed классы в C# и статические классы в C#) я рассказывал про достаточно специфические классы, это классы, которые не могут быть использованы в качестве базовых классов (это sealed классы) и классы, объекты которых нельзя создавать в своих программах (это статические классы, хотя, они и в наследовании участия принимать тоже не могут). Так вот в этой статье, я хочу рассказать о еще одном типе классов, это абстрактные классы.

Статические классы в C#

Статические классы

В этой статье я хочу рассказать о создании статических классов (не просто классов, в которых всего лишь присутствуют статические сущности, такие как поля, метод, свойства и т.п., об этом я рассказывал в предыдущей статье), а так же об особенностях их использования. Класс считается статическим, если при его создании, перед ключевым словом class указывается ключевое слово static. Определение класса статическим, означает то, что этот класс является набором только статических сущностей (полей, методов, свойств и т.п.), и, внимание, создавать объекты такого класс нельзя!