Главная » C#

Перегрузка операторов в Visual C# (Sharp)

Добавлено Дата: 28 February, 2014 категория: C#

Как было сказано, оператор + ведет себя по-разному с типами string и int. Спривается, каким образом применение оператора  + со строковым типом  изменяет его поведение? Изменить поведение оператора + можно, реализовав его в пользовельском типе.

Для примера, рассмотрим пошагово реализацию оператора + для комплексного члового типа. Комплексные числа состоят из двух частей: вещественной и мнимой. Например, в комплексном числе а+ь часть а является вещественной, а часть ь — мнимой. При сложении комплексных чисел, складываются их соответствующие вещественные и мнимые части. Далее приводится объявление комплексного числа: public sealed class ComplexType {

Читать »

Обработка исключений в С#

Добавлено Дата: 28 February, 2014 категория: C#

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

Читать »

Тестирование операции простого сложения для программы Калькулятор в Visual C# (Sharp)

Добавлено Дата: 27 February, 2014 категория: C#

Для верификации правильности сложения  чисел  1  и  2  добавьте  выделенный  жиым шрифтом код  в  исходный  код тестового  консольного  приложения,  как  показо в  следующем  фрагменте  кода:

namespace TestCalculator { class Program {

public static void TestSiiqpleAddition() {

Читать »

Реализация обработчиков исключений в Visual C# (Sharp)

Добавлено Дата: 27 February, 2014 категория: C#

Обработчик исключения реализуется с помощью ключевых слов try, catch и finally. Суть реализации обработчика исключения в том, что исключение, сгенерированное в определенном блоке кода, будет перехвачено и обработано. Блок обработчика исключения имеет такую структуру:

Читать »

Применение лямбда-выражений в Visual C# (Sharp)

Добавлено Дата: 26 February, 2014 категория: C#

Использование лямбда-выражений не облегчит вашу работу по  программировию. И, несомненно, поначалу у вас будут проблемы с их пониманием. Но когда вы разберетесь с ними, то они сделают решение определенного класса проблем тривльным.

Идея лямбда-выражений заключается в отложении выполнения на позднее время. Они как бы говорят: "Когда будем выполнять операцию х, тогда также выполним операцию  у .

Читать »

Перехват исключений в Visual C# (Sharp)

Добавлено Дата: 26 February, 2014 категория: C#

На рис. 2.13 показано, как среда Visual С# Express прервала поток исполнения прраммы, перехватив исключение, сгенерированное  арифметическим  переполненм. Это подобно ситуации, когда на уроке практического вождения инструктор пехватывает управление от ученика, чтобы избежать аварийной ситуации, предпосылки к которой были созданы неправильными действиями ученика. Побным образом, механизм среды CLR для перехвата и обработки исключений можно рассматривать как перехват инструктором управления, чтобы избежать оицательных последствий на исполнении операционной системы и других прилений, которые может вызвать неадекватное поведение какого-либо приложения.

Читать »

Помещение кода в песочницу Visual C# (Sharp)

Добавлено Дата: 24 February, 2014 категория: C#

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

Читать »

Организация алгоритма поиска в Visual C# (Sharp)

Добавлено Дата: 24 February, 2014 категория: C#

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

Читать »

Определение теста для алгоритма поиска в глубину на Visual C# (Sharp)

Добавлено Дата: 23 February, 2014 категория: C#

Тип Node является автономным типом. Это означает, что алгоритму не требуется создавать  экземпляр  древовидной  структуры.  Это  пример  хорошего  проектировия, т. к. в случае необходимости добавить новые города нужно  будет  изменить только сам тип  Node. Любой  алгоритм  поиска,  использующий  тип  Node, изменять не  потребуется.

Читать »

Создание ядра приложения управления освещением в Visual C# (Sharp)

Добавлено Дата: 23 February, 2014 категория: C#

Система управления освещением реализуется в два этапа. На первом этапе пишется исходный код, который работает должным образом. А на втором этапе в решение интегрируется код, написанный  другими программистами. Здесь  же выполняется проверка, что если данный код по каким-либо причинам не работает должным оазом, то это не скажется на коде, разработанном нами.

Читать »

Канальная пересылка данных с помощью консоли в Visual C# (Sharp)

Добавлено Дата: 22 February, 2014 категория: C#

Так как для ввода данных консольные приложения в основном используют клавиуру, то они не отличаются хорошей интерактивностью. Главное достоинство коольных приложений состоит в их возможностях динамически объединять манипяции потоками данных в процессе, называющемся канальной пересылкой данных (piping).

Читать »

Алгоритм поиска в глубину в Visual C# (Sharp)

Добавлено Дата: 22 February, 2014 категория: C#

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

Читать »

Реализация метода GetHashCodeQ в Visual C# (Sharp)

Добавлено Дата: 21 February, 2014 категория: C#

В документации MSDN метод object. GetHashCode о описывается следующим обром (http://msdn2.microsoft.cora/en-us/library/system.object.gethashcode(vs.71).aspx): "Данный метод можно подменять в производном классе. Значимые классы должны подменять этот метод, чтобы предоставить функцию хеширования, соответствуую классу и обеспечивающую лучшее распределение хэш-таблицы. Классы, корые могут быть  использованы эш-таблице в качестве ключа, также должны подменять этот метод, т. к. объекты, используемые в качестве ключа хэш-таблицы, должны генерировать свой хэш-код посредством данного метода. Но если объекты, используемые в качестве ключа, не предоставляют пригодной реализации метода GetHashCode, можно предоставить другого поставщика хэш-кода, основанного на интерфейс е  System.Collections. IHashCodeProvider, пр и  создани и  Hashtable".

Читать »

Создание оболочки в Visual C# (Sharp)

Добавлено Дата: 21 February, 2014 категория: C#

С архитектурной точки зрения реализация приложения TextProcessor заключается в  написании двух фрагментов  кода:  модуля для  чтения  и  записи данных в  поток и модуля для обработки потока. Реализуя обработчик данных отдельно от постаика, мы делаем обработчик независимым от источника данных. Это также позвяет нам определить интерфейс для обработки данных.

Читать »

Реализация пользовательских типов в Visual C# (Sharp)

Добавлено Дата: 21 February, 2014 категория: C#

Структура данных, с которой будет работать наш алгоритм, будет иметь тип, опреляемый пользователем. В приводимых до этого примерах мы использовали такие типы данных, как double и string, которые предоставляются средой CLR. Для примера в этой главе мы определим  свой тип, который впоследствии  используем для представления узлов в древовидной структуре.

Читать »