классом.

Операторы

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

□ Оператор присваивания =, который присваивает значения переменным.

□ Все другие операторы: +, -, * и /, каждый из которых возвращает какое-то значение.

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

В C# такого разделения просто не существует. Правило в C# гласит, что все операторы возвращают значение, а некоторые операторы имеют также дополнительный побочный эффект, присваивая некоторое значение переменной. Фактически мы уже видели пример этого, когда рассматривали оператор сложения- присваивания +=:

int А = 5, В = 15;

А += В; // выполняет арифметическую операцию

        // и присваивает А результат (20)

Таким образом, += возвращает, а также присваивает значение. Он возвращает новое значение, которое было присвоено. В связи с этим можно на самом деле написать:

int А = 5, B = 15;

int C = (А+=В);

Это в результате приведет в тому, что и А, и С будет присвоено значение 20. Оператор присваивания = также возвращает значение, которое было присвоено переменной с левой стороны выражения. Это означает, что можно записать код следующим образом:

С = (А = В);

Этот код задает А равным значению В, а затем то же самое значение присваивает С. Можно также написать эту инструкцию более просто:

С = А = В;

Обычное использование такого синтаксиса состоит в вычислении некоторого условия внутри инструкции if и одновременном задании результата этого условия в виде переменой типа bool (эквивалент в C# для Boolean из VB), чтобы можно было использовать это значение позже:

// предположим, что X и Y — переменные, которые были инициализированы.

bool В;

if (В = (X==Y)) DoSomething();

Этот код выглядит пугающим на первый взгляд, но он вполне логичен. Давайте разберем его. Прежде всего компьютер проверяет условие X == Y. В зависимости от того, содержат ли X и Y одинаковые данные, оно возвратит true или false и это значение будет присвоено переменной В. Однако поскольку оператор присваивания также возвращает значение, которое было только что присвоено все выражение В = (X==Y) также будет возвращать то же самое значение (true или false). Это возвращаемое значение затем используется предложением if для определения, нужно ли выполнять условную инструкцию DoSometning(). В результате этого кода условие X == Y проверяется для выяснения, должны ли выполняться условные инструкции, и в то же самое время результаты этой проверки сохраняются в переменной В.

Тернарный оператор

В этом приложении нет места для обсуждения всех доступных в C# операторов. Они подробно рассмотрены в главах 3-6. Однако упомянем тернарный оператор (известный также как условный оператор), так как он имеет очень необычный синтаксис. Тернарный оператор формируется из двух символов — ? и :. Он имеет три параметра и на самом деле эквивалентен инструкции If в VB. Синтаксически используется следующие образом:

// В, X и Y являются некоторыми переменными или выражениями.

// В является Boolean.

B ? X : Y

и работает так: оценивается первое выражение, которое расположено перед символом ? , если оно оценивается как true, то возвращается результат второго выражение но если оно оценивается как false, то вместо этого возвращается результат третьего выражения. Это предоставляет предельно компактный синтаксис для условного задания значения переменной. Например, можно написать:

int Z = (Х==Y) ? 5 : 8;

что будет иметь такой же результат, как и следующие вычисления:

int Z;

if (X==Y) Z = 5;

else Z = 8;

Заключение

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

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату