Добавить в цитаты Настройки чтения

Страница 10 из 188



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

В C# точка с запятой обозначает конец оператора. Это означает, что каждый оператор в отдельности должен оканчиваться точкой с запятой.

Как вы уже знаете, кодовый блок представляет собой набор логически связанныхоператоров, заключенных в фигурные скобки. Блок не оканчивается точкой с запятой,поскольку он состоит из группы операторов. Вместо этого окончание кодового блокаобозначается закрывающей фигурной скобкой.

В С# конец строки не означает конец оператора — о его окончании свидетельствуеттолько точка с запятой. Именно поэтому оператор можно поместить в любой частистроки. Например, на языке C# строки кодах = у;у = у + 1;Console.WriteLine(х + " " + у);

означают то же самое, что и строка кодах = у; у = у + 1; Consо1е.WriteLine(х + " " + у);

Более того, составные элементы оператора можно располагать в отдельных строках.Например, следующий фрагмент кода считается в C# вполне допустимым.Console.WriteLine("Это длинная строка вывода" + х + у + z + "дополнительный вывод");

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

Возможно, вы уже обратили внимание на то, что в предыдущих примерах программ некоторые операторы были набраны с отступом. В C# допускается свободнаяформа записи. Это означает, что взаимное расположение операторов в строке неимеет особого значения. Но с годами в программировании сложился общепринятыйстиль оформления исходного текста программ с отступами, что существенно облегчаетчтение этого текста. Именно этому стилю следуют примеры программ в данной книге,что рекомендуется делать и вам. В соответствии с этим стилем следует делать отступ(в виде нескольких пробелов) после каждой открывающей фигурной скобки и возвращаться назад после закрывающей фигурной скобки. А для некоторых операторов дажетребуется дополнительный отступ, но об этом речь пойдет далее.Ключевые слова C

Основу любого языка программирования составляют его ключевые слова, поскольку они определяют средства, встроенные в этот язык. В C# определены два общих типаключевых слов: зарезервированные и контекстные. Зарезервированные ключевые слованельзя использовать в именах переменных, классов или методов. Их можно использовать только в качестве ключевых слов. Именно поэтому они и называются зарезервированными. Их иногда еще называют зарезервированными словами, или зарезервированнымиидентификаторами. В настоящее время в версии 4.0 языка С# определено 77 зарезервированных ключевых слов (табл. 2.1).





Таблица 2.1. Ключевые слова, зарезервированные в языке C#abstract as base bool breakbyte case catch char checkedclass const continue decimal defaultdelegate do double else enumevent explicit extern false finallyfixed float for foreach gotoif implicit in int interfaceinternal is lock long namespacenew null object operator outoverride params private protected publicreadonly ref return sbyte sealedshort sizeof stackalloc static stringstruct switch this throw truetry typeof uint ulong uncheckedunsafe ushort using virtual volatilevoid while

Кроме того, в версии C# 4.0 определены 18 контекстных ключевых слов, которыеприобретают особое значение в определенном контексте. В таком контексте они выполняют роль ключевых слов, а вне его они могут использоваться в именах другихэлементов программы, например в именах переменных. Следовательно, контекстныеключевые слова формально не являются зарезервированными. Но, как правило, их следует считать зарезервированными, избегая их применения в любых других целях. Ведьприменение контекстного ключевого слова в качестве имени какого-нибудь другогоэлемента программы может привести к путанице, и поэтому считается многими программистами плохой практикой. Контекстные ключевые слова приведены в табл. 2.2.Таблица 2.2. Контекстные ключевые слова в C#add dynamic from get globalgroup into join let orderbypartial remove select set valuevar where yieldИдентификаторы

В C# идентификатор представляет собой имя, присваиваемое методу, переменнойили любому другому определяемому пользователем элементу программы. Идентификаторы могут состоять из одного или нескольких символов. Имена переменных могутначинаться с любой буквы алфавита или знака подчеркивания. Далее может следоватьбуква, цифра или знак подчеркивания. С помощью знака подчеркивания можно повысить удобочитаемость имени переменной, как, например, line_count. Но идентификаторы, содержащие два знака подчеркивания подряд, например, max__value,зарезервированы для применения в компиляторе. Прописные и строчные буквы в C#различаются. Так, например myvar и MyVar — это разные имена переменных. Нижеприведены некоторые примеры допустимых идентификаторов.Test x У2 MaxLoadup _top my_var sample23Помните, что идентификатор не может начинаться с цифры. Например, 12х — недействительный идентификатор. Хорошая практика программирования требует выбиратьидентификаторы, отражающие назначение или применение именуемых элементов.Несмотря на то что зарезервированные ключевые слова нельзя использовать в качестве идентификаторов, в C# разрешается применять ключевое слово с предшествующим знаком @ в качестве допустимого идентификатора. Например, @for — действительный идентификатор. В этом случае в качестве идентификатора фактически служитключевое слово for, а знак @ просто игнорируется. Ниже приведен пример программы, демонстрирующей применение идентификатора со знаком @.// Продемонстрировать применение идентификатора со знаком @.using System;class IdTest { static void Main() { int @if; // применение ключевого слова if // в качестве идентификатора for(@if = 0; @if < 10; @if++) Console.WriteLine("@if равно " + @if); }}

Приведенный ниже результат выполнения этой программы подтверждает, что @ifправильно интерпретируется в качестве идентификатора.@if равно 0@if равно 1@if равно 2@if равно 3@if равно 4@if равно 5@if равно 6@if равно 7@if равно 8@if равно 9

Откровенно говоря, применять ключевые слова со знаком @ в качестве идентификаторов не рекомендуется, кроме особых случаев. Помимо того, знак @ может предшествовать любому идентификатору, но такая практика программирования считаетсяплохой.Библиотека классов среды .NET Framework

В примерах программ, представленных в этой главе, применялись два встроенных метода: WriteLine() и Write(). Как упоминалось выше, эти методы являютсячленами класса Console, относящегося к пространству имен System, которое определяется в библиотеке классов для среды .NET Framework. Ранее в этой главе пояснялось, что среда C# опирается на библиотеку классов, предназначенную для среды.NET Framework, чтобы поддерживать операции ввода-вывода, обработку строк, работу в сети и графические пользовательские интерфейсы. Поэтому, вообще говоря, C#представляет собой определенное сочетание самого языка C# и стандартных классов.NET. Как будет показано далее, библиотека классов обеспечивает функциональныевозможности, являющиеся неотъемлемой частью любой программы на С#. Для тогочтобы научиться программировать на С#, нужно знать не только сам язык, но и уметьпользоваться стандартными классами. Различные элементы библиотеки классов длясреды .NET Framework рассматриваются в части I этой книги, а в части II — самабиблиотека по отдельным ее составляющим.

ГЛАВА 3. Типы данных, литералы

В этой главе рассматриваются три основополагающихэлемента С#: типы данных, литералы и переменные.В целом, типы данных, доступные в языке программирования, определяют те виды задач, для решения которыхможно применять данный язык. Как и следовало ожидать,в C# предоставляется богатый набор встроенных типов данных, что делает этот язык пригодным для самого широкогоприменения. Любой из этих типов данных может служитьдля создания переменных и констант, которые в языке C#называются литералами.О значении типов данных