русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Class Classl


Дата добавления: 2013-12-23; просмотров: 1366; Нарушение авторских прав


Class Classl

{

static void Write()

{

string myString = “String defined in Write()”;

Console.WriteLine(“Now in Write()”) ;

Console.WriteLine(“myString = {0}”, myString);

}

static void Main (string [] args)

{

string myString = “String defined in Main()”;

Write();

Console. WriteLine (“ \nNow inMain()”);

Console.WriteLine(“myString = {0}”, myString);

}

}

Этот код успешно проходит процедуру компиляции и выдает следующий результат:

 
 

 

 


Данная программа выполняет следующие действия:

• В функции Main () описывается и инициализируется переменная с именем myString.

• Функция Main () передает управление функции Write().

• В функции Write () описывается и инициализируется переменная с именем myString, отличная от переменной с именем myString, описанной в функции Main().

• Функция Write () выводит на консоль строку, содержащую то значение переменной mystring, которое ей присвоено в функции Write() .

• Функция Write() возвращает управление функции Main().

• Функция Main () выводит на консоль строку, содержащую то значение переменной myString, которое ей присвоено в функции Main ().

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

static string myString;

static void Write()

{

string myString = “String defined in Write ()”;

Console. WriteLine (“Now in Write ()”) ;

Console.WriteLine(“Local myString = {0}”-, myString);

Console.WriteLine(“Global myString = {0}”, Classl.myString);

}

static void Main(string [] args)

{

string myString = "String defined in Main() ";



Classl.myString = "Global string";

Write();

Console.WriteLine(“\nNow in Main()”) ;

Console. WriteLine (“Local myString = {0}”, myString) ;

Console.WriteLine("Global myString = {0}", Classl.myString);

}

В данном случае будет получен следующий результат:

 
 

 


На этот раз мы включили в код еще одну переменную с именем myString, изменив иерархию имен в программе. Эта переменная описана следующим образом:

static string myString;

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

Для того чтобы отличать глобальную переменную от локальных переменных с тем же именем в функциях Main() и Write() , нам необходимо классифицировать имя глобальной переменной, используя полностью квалифицированное имя. В данном случае мы обращаемся к глобальной переменной по имени Classl.myString. Обратите внимание, что это необходимо делать только в том случае, если существуют глобальная и локальная переменные с одинаковым именем; если бы локальной переменной с именем myString не существовало, то мы совершенно свободно могли бы использовать для обращения к глобальной переменной имя myString вместо Classl.myString. В том случае, когда используется локальная переменная, имя которой совпадает с именем глобальной переменной, говорят, что глобальная переменная является скрытой.

Значение глобальной переменной задается в функции Main ():

Classl.myString = “Global string”;

и используется в функции Write():

Console.WriteLine(“Global myString = {0}”, Classl.myString);

Теперь непонятно, почему всегда не прибегаем к такому способу обмена данными с функциями. Действительно, существуют определенные ситуации, когда этот способ передачи данных оказывается более предпочтительным, однако имеется не меньшее (если не большее) число ситуаций, когда он менее удобен. Стоит ли применять глобальные переменные, зависит от способа использования каждой конкретной функции. Проблема глобальных переменных заключается в том, что они, по большому счету, оказываются непригодными для функций "общего назначения", которые способны работать с любыми передаваемыми им данными и не ограничиваются данными, задаваемыми конкретной глобальной переменной.



<== предыдущая лекция | следующая лекция ==>
Class Classl | Лекция 8. Элементы компьютерного дизайна


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.116 сек.