PDA

Просмотр полной версии : Алфавит C#


Винсент
12.04.2010, 18:40
АЛФАВИТ С#

Алфавит (или множество литер) языка программирования С# составляют символы таблицы кодов ASCII. Алфавит С# включает:
• строчные и прописные буквы латинского алфавита (мы их будем называть буквами);
• цифры от 0 до 9 (назовем их буквами-цифрами);
• символ «_» (подчеркивание — также считается буквой);
• набор специальных символов: " { }, 1 [ ] + — %/ \; ' : ? < > = ! & # ~ *-
• прочие символы.
Алфавит С# служит для построения слов, которые в C++ называются лексемами. Различают пять типов лексем:
• идентификаторы;
• ключевые слова;
• знаки (символы) операций;
• литералы;
• разделители.
Почти все типы лексем (кроме ключевых слов и идентификаторов) имеют собственные правила словообразования, включая собственные подмножества алфавита.
Лексемы обособляются разделителями. Этой же цели служит множество пробельных символов, к числу которых относятся пробел, табуляция, символ новой строки и комментарии.

ПРАВИЛА ОБРАЗОВАНИЯ ИДЕНТИФИКАТОРОВ

Рассмотрим правила построения идентификаторов из букв алфавита.
• Первым символом идентификатора С# может быть только буква.
• Следующими символами идентификатора могут быть буквы, цифры и нижнее подчеркивание.
• Длина идентификатора не ограничена.
Вопреки правилам словообразования, в С# существуют ограничения относительно применения подчеркивания в качестве самой первой буквы в идентификаторах. Из-за особенностей реализации использование идентификаторов, которые начинаются с этого символа, нежелательно.

РЕКОМЕНДАЦИИ ПО НАИМЕНОВАНИЮ ОБЪЕКТОВ

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

КЛЮЧЕВЫЕ СЛОВА И ИМЕНА

Часть идентификаторов С# входит в фиксированный словарь ключевых слов. Эти идентификаторы образуют подмножество ключевых слов (они так и называются ключевыми словами). Прочие идентификаторы после специального объявления становятся именами. Имена служат для обозначения переменных, типов данных, функций. Обо всем этом позже.
Ниже приводится таблица со списком ключевых слов. Вы не можете использовать эти имена для образования классов, функций, переменных и других языковых структур.
abstract do in protected true
as double int public try
base else interface readonly typeof
bool enum internal ref uint
break event is return ulong
byte explicit lock sbyte unchecked
case extern long sealed unsafe
catch false namespace short ushort
char finally new sizeof using
checked fixed null stackalloc virtual
class float object static void
const for operator string volatile
continue foreach out struct while
decimal goto override switch
default if params this
delegate implicit private throw
КОММЕНТАРИИ

Часто бывает полезно вставлять в программу текст, который является комментарием только для читающего программу человека и игнорируется компилятором. В С# это можно сделать одним из двух способов.
Символы /* начинают комментарий, заканчивающийся символами */
Такая последовательность символов эквивалентна символу пропуска (например, символу пробела). Это особенно полезно для многострочных комментариев и изъятия частей программы при редактировании, однако следует помнить, что комментарии /* */ не могут быть вложенными.
Символы // начинают комментарий, заканчивающийся в конце строки, на которой они появились. И здесь вся последовательность символов эквивалентна пропуску. Этот способ наиболее полезен для коротких комментариев. Символы // можно использовать для того, чтобы закомментировать символы /* или */, а символами /* можно закомментировать //.

ЛИТЕРАЛЫ

В С# существует четыре типа литералов:
• целочисленный литерал;
• вещественный литерал;
• символьный литерал;
• строковый литерал.
Литералы — это особая категория слов языка. Для каждого подмножества литералов используются собственные правила словообразования. Мы не будем приводить их здесь, ограничившись лишь общим описанием структуры и назначения каждого подмножества литералов. После этого правила станут более-менее понятны.
Целочисленный литерал служит для записи целочисленных значений и является соответствующей последовательностью цифр (возможно, со знаком '-'). Целочисленный литерал, начинающийся со знака 0, воспринимается как восьмеричное целое. В этом случае цифры 8 и 9 не должны встречаться среди составляющих литерал символов. Целочисленный литерал, начинающийся с Ох или ОХ, воспринимается как шестнадцатеричное целое. В этом случае целочисленный литерал может включать символы от А или а, до F или f, которые в шестнадцатеричной системе эквивалентны десятичным значениям от 10 до 15. Непосредственно за литералом могут располагаться в произвольном сочетании один или два специальных суффикса: U (или и) и L (или l).
Вещественный литерал служит для отображения вещественных значений. Он фиксирует запись соответствующего значения в обычной десятичной или научной нотациях. В научной нотации мантисса отделяется от порядка литерой Е (или е). Непосредственно за литералом может располагаться один из двух специальных суффиксов: F (или f) и L (или l).
Значением символьного литерала является соответствующее значение ASCII кода (это, разумеется, не только буквы, буквы-цифры или специальные символы алфавита С#). Символьный литерал представляет собой последовательность одной или нескольких литер, заключенных в одинарные кавычки. Символьный литерал служит для представления литер в одном из форматов представления. Например, литера Z может быть представлена литералом «Z», а также литералами «\132» и «\х5А». Любая литера может быть представлена в нескольких форматах представления: обычном, восьмеричном и шестнадцатеричном.
Строковые литералы являются последовательностью (возможно, пустой) литер в одном из возможных форматов представления, заключенных в двойные кавычки. Строковые литералы, расположенные последовательно, соединяются в один литерал, причем литеры соединенных строк остаются различными. Так, последовательность строковых литералов «\xF» «F» после объединения будет содержать две литеры, первая из которых является символьным литералом в шестнадцатеричном формате «\xF», вторая — символьным литералом «F». Строковый литерал и объединенная последовательность строковых литералов заканчиваются пустой литерой, которая используется как индикатор конца литерала.