Программирование >>  Программирование с использованием ajax 

1 ... 17 18 19 [ 20 ] 21 22 23 ... 396


После создания пространств имен для упрощения доступа к содержащимся в них именам можно применять оператор using. С помощью этого оператора, по сути, заявляется следующее: Далее будут нужны имена из этого пространства имен, поэтому нет желания постоянно уточнять их . Например, следующий код указывает, что у кода в пространстве имен LevelOne должна быть возможность получать доступ к именам из пространства имен LevelOne. LevelTwo без уточнения:

namespace LevelOne {

using LevelTwo; namespace LevelTwo {

определение имени NameTwo

Благодаря этому, в коде пространства имен LevelOne ссылаться на LevelTwo. NameTwo можно будет с использованием просто NameTwo.

В некоторых случаях, однако, как и в приведенном выше примере с NameThree, такой подход может привести к появлению проблем из-за конфликтов между идентичными именами в разных пространствах имен (т.е. при использовании такого имени код не будет компилироваться - и компилятор будет выдавать сообщение, информирующее об отсутствии однозначности). В подобных случаях в операторе using можно указывать псевдоним (alias) пространства имен:

namespace LevelOne {

using LT = LevelTwo;

определение имени NameThree

namespace LevelTwo

определение имени NameThree

Благодаря этому, в коде пространства имен LevelOne теперь на LevelOne .NameThree можно будет ссылаться как NameThree, а на LevelOne . LevelTwo. NameThree- LT.NameThree.

Действие операторов using распространяется как на те пространства имен, в которых они содержатся, так и на любые вложенные пространства имен, которые также могут содержаться в этих пространствах имен. Приведенный выше код не позволяет применять в глобальном пространстве имен LT.NameThree. Однако если бы оператор using в нем был объявлен следующим образом:

using LT = LevelOne.LevelTwo;

namespace LevelOne

определение имени NameThree

namespace LevelTwo

определение имени NameThree

тогда в коде глобального пространства имен и пространства имен LevelOne можно было бы использовать LT.NameThree.



Обратите внимание на еще один важный момент: сам по себе оператор using не предоставляет доступа к именам в другом пространстве имен. Если только код в пространстве имен не будет каким-то образом связан с проектом, например, его определением в файле исходного кода проекта или в другом связанном с проектом коде, доступа к содержащимся в нем именам не будет. Кроме того, в случае связывания содержащего пространство имен кода с проектом, доступ к его именам будет открыт вне зависимости от того, используется оператор using или нет. Оператор using просто упрощает получение доступа к этим именам и может сократить количество вводимого кода, делая его более удобным для чтения.

Теперь вернемся к приведенному в начале этой главы коду приложения ConsoleApplicationl с тремя следующими касающимися пространств имен строками:

using System;

using System.Collections . Generic-using System.Text; namespace ConsoleApplicationl {

Здесь три строки, начинающиеся с ключевого слова using, применяются для объявления того, что в последующем коде С# будут использоваться пространства имен System, System.Collections .Generic, System.Text и что к ним нужно обращаться из всех пространств имен в данном файле без квалификации. Пространство имен System является корневым для приложений .NET Framework и содержит все базовые функциональные возможности, которые могут быть необходимы для создания консольных приложений. Два других пространства имен очень часто используются в консольных приложениях и потому указаны здесь просто так, на всякий случай.

И, напоследок, в четвертой строке, начинающейся с ключевого слова using, объявляется пространство имен под названием ConsoleApplicationl, предназначенное для кода самого приложения.

Резюме

В этой главе был предоставлен большой объем основополагающего материала, необходимого для создания практичных простых приложений на С#. В частности, был продемонстрирован базовый синтаксис языка С#, а также проведен анализ кода простого консольного приложения, который VS и VCE генерируют автоматически при создании соответствующего проекта.

Большая часть этой главы была посвящена рассмотрению переменных и способов работы с ними. Здесь было показано и то, что собой вообще представляют переменные, и то, как их можно создавать, а также то, как им можно присваивать значения и работать с ними и значениями, которые они содержат. По ходу еще также были продемонстрированы и некоторые основные приемы взаимодействия с пользователем, показавшие, как выводить текст в консольном приложении и как считывать вводимые пользователем данные. Не обошлось и без иллюстрации элементарных приемов преобразования типов, являющихся сложной темой, которая будет более подробно рассматриваться в главе 5.

Кроме того, в этой главе было показано, как собирать операции и операнды в выражения, а также, каким образом и в каком порядке они выполняются.

И, наконец, в завершение главы было рассказано о том, что собой представляют пространства имен, которые являются очень важными для изучения дальнейшего ма-



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

а Как выглядит базовый синтаксис языка С#.

а Что делает Visual Studio, когда создается новый проект консольного приложения. □ Что собой представляют переменные и как ими пользоваться, а Что собой представляют выражения и как их применять, а Что собой представляют пространства имен.

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

Упражнения

1. Как в следующем коде можно было бы сослаться на имя great из кода в пространстве имен fabulous?

namespace fabulous {

код в пространстве имен fabulous

namespace super {

namespace smashing {

определение имени great

2. Какое из следующих значений не является допустимым именем для переменной?

myVariablelsGood

99Flake

floor

time2GetJiggyWidIt

wrox.com

3. Является ли строка supercalif ragilisticexpialidocious слишком большой для того, чтобы уместиться в переменной string? Если да, то почему?

4. Учитывая приоритеты операций, перечислите шаги вычисления следующего выражения:

resultVar += varl * var2 + var3 % var4 / var5;

5. Напишите консольное приложение, способное получать от пользователя четыре значения int и на их основании отображать название продукта. Подсказка: напоминаем о том, что для преобразования поступающего из консоли ввода в double применялась команда Convert. ToDouble (); эквивалентная команда для преобразования ввода из string в int выглядит как Convert. ToInt32 ().



1 ... 17 18 19 [ 20 ] 21 22 23 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика