Книга: C# для профессионалов. Том II

Объявления

Объявления

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

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

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

Тип (void) предшествует имени метода, не используя никаких других ключевых слов для указания того, что объявляется — это очевидно из контекста. То же самое справедливо для параметров. Типами параметров являются object и System.EventArgs. Тип object в C#, кстати, играет роль, аналогичную Object в VB,— он указывает то, для чего тип данных не был определен. Однако object в C# значительно более мощный, чем Object в VB, и в C# object заменяет тип данных Variant из VB. object мы рассмотрим позднее. System.EventArgs не будет рассматриваться подробно в этом приложении. Это базовый класс .NET и он не имеет аналога в VB.

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

int x = 10; // int аналогично Long в VB
string Message = "Hello World"; // string аналогично String в VB

Необходимо также отметить некоторые моменты, связанные с переменными.

Никаких суффиксов в C#

VB позволяет присоединять суффиксы к переменным, чтобы указать их тип данных: $ для String, % для Int, & для Long.

Dim Message$ ' будет string

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

Никаких значений по умолчанию для локальных переменных

В примере кода VB переменной NumberInput по умолчанию будет присвоено значение 0 после ее объявления. Это на самом деле ненужная фата процессорного времени, так как этой переменной немедленно в следующей инструкции присваивается новое значение. C# немного больше знает о производительности и не беспокоится о задании каких-либо значений по умолчанию для локальных переменных при их объявлении. Вместо этого он требует, чтобы такие переменные всегда инициализировались в коде программы до их использования. Компилятор C# будет инициировать ошибку компиляции, если попытаться прочитать значение локальной переменной прежде, чем она будет задана.

Оглавление книги


Генерация: 0.190. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз