C# и VB.

Базовый синтаксис

Давайте рассмотрим две программы SquareRoot для ознакомления с синтаксисом C#.

С# требует, чтобы все переменные были объявлены

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

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

Комментарии

Комментирование кода всегда важно, поэтому дальше в обоих примерах (или первое, что делается в примере на C#) добавляется комментарий:

// Обработчик событий нажатия пользователем кнопки Show Results.

// Выводится квадратный корень и знак числа

private void OnClickShowResults(object sender, System.EventArgs e) {

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

// Этот код определяет результаты

int Result = 10 * Input; // получение результата

Однако C# более гибок в своих комментариях, так как позволяет использовать два других способа указания комментариев, каждый из которых имеет слегка различный эффект.

Комментарий также может быть ограничен последовательностями символов /* и */. Другими словами, если компилятор встречает последовательность /*, он предполагает, что весь последующий текст является комментарием, пока не встретит последовательность */. Это позволяет иметь длинные комментарии, которые распространяются на несколько строк:

/* этот текст действительно является длинным

длинным

длинным

длинным

комментарием * /

Короткие комментарии внутри строки являются очень полезными, если необходимо только временно заменить что-то в строке во время отладки:

X = /* 20 */ 15;

Третий способ похож на первый. Однако теперь используется три слэша:

/// <summary>

/// Event handler for user clicking Show Results button.

/// Displays square root and sign of number

/// </summary>

/// <param name='sender'></param>

/// <param name='e'></param>

private void OnClickShowResults(object sender, System.EventArgs e)

Если впереди используются три наклонные черты вместо двух, то комментарий по-прежнему продолжается до конца строки. Однако этот комментарий имеет теперь дополнительный результат: компилятор C# способен на самом деле использовать комментарии, которые начинаются с трех наклонных черт, чтобы автоматически создавать документацию для исходного кода как отдельный файл XML. Именно поэтому пример выше имеет достаточно формальную структуру для реального текста комментария. Эта структура готова к размещению в файле XML. Здесь не будут представлены детали этого процесса (он рассмотрен в главе 3). Необходимо только сказать, что комментируя каждый метод в коде, можно автоматически получить законченную документацию, которая обновляется при изменении кода. Компилятор будет даже проверять, что документация соответствует сигнатурам методов и т.д.

Разделение и группировка инструкций

Наиболее заметным различием между приведенными выше кодами на VB и на C# будет, почти наверняка, присутствие точек с запятыми и фигурных скобок в коде C#. Хотя это делает код C# довольно устрашающим, принцип на самом деле очень простой. Visual Basic применяет возврат каретки для указания конца инструкции, в то время как в C# используется для той же цели точка с запятой. Фактически компилятор полностью игнорирует все лишние пробелы, включая возвраты каретки. Эти свойства синтаксиса C# можно комбинировать, чтобы предоставить большую свободу при размещении кода. Например, следующий код (переформатированный из части приведенного выше примера) также вполне допустим в C#:

this.txtSign.Text = 'Negative';

this.txtResult.Text = Math.Sqrt(-NumberInput) + ' i';

Хотя очевидно, что если потребуется, чтобы другие люди смогли прочитать код, лучше предпочесть первый стиль кодирования. Visual Studio.NET будет в любом случае автоматически размещать код в таком стиле.

Скобки используются для группирования вместе инструкций в так называемые блочные инструкции (или иногда составные инструкции). Эта концепция в действительности не существует в VB. Можно сгруппировать вместе любые инструкции, помещая вокруг них скобки. Группа теперь рассматривается как одна блочная инструкция и может использоваться в любом месте в C#, где ожидается одиночная инструкция.

Блочные инструкции часто используются в C#. Например, в приведенном выше коде C# не существует явного указания на конец метода (C# имеет методы там, где VB имеет функции и подпрограммы). VB требуется инструкция End Sub в конце любой подпрограммы, так как подпрограмма может содержать сколько угодно инструкций. Специальный маркер является единственным способом, который известен в VB для определения конца подпрограммы. C# действует по-другому. В C# метод формируется в

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

0

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

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