КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Const-параметры
ТИПИЗИРОВАННЫЕ КОНСТАНТЫ План заняття 1. Поняття та характеристика типізованих констант Delphi 2. Приклади застосування типізованих констант
Типизированные константы в Delphi позволяют хранить не только значенияпримитивных типов, но и массивы, записи, а также указатели, включая указателина процедуры и функции: const A: integer = 1;const B: array [1..3] of integer = (1, 2, 3);В C# константы всегда типизированы - как при использовании модификатораconst, так и readonly. В Delphi при использовании директивы компилятора {$J+} (установлено поумолчанию) типизованные константы ведут себя как обычные переменные, которыеинициализируются одновременно с описанием, т.е. их значение может быть измененов ходе выполнения программы: const A: integer = 1;X:= A;A:= 2;В C# действуют более строгие правила - если константа, то поменять еезначение невозможно. Если же используется поле, тоего содержимое может быть изменено в контексте объекта: // класс-оберткаpublic class Const {// число-константа public readonly int A = 1;// метод изменяет значение поля A public void ChangeA(int NewValue) { A = NewValue; }}При использовании типизованных констант в качествеинициализируемых переменных в области видимости подпрограммы (метода,процедуры, функции) в Delphi наблюдается недокументированный побочный эффект - данные,записанные в локальные типизованные константы, сохраняются между вызовамиподпрограмм: Inc(B); ShowMessage(IntToStr(B));end; procedure Do;begin A; A; A;end; Результаты вывода: 1, 2, 3 В C# подобный побочный эффект отсутствует. Вообще, стандартизация C# в качествемеждународного стандарта (ECMA, 2001 год) гарантирует отсутствиепобочных эффектов. Поэтому если в программе C# необходимо сохранять некоторое состояниемежду вызовами подпрограмм (методов), используются стандартные средства, вчастности, статические или обыкновенные поля классов.
В Delphi семантический смысл const-параметров заключается в указаниикомпилятору на возможность оптимизации передачи в функцию (процедуру, метод)неизменяемой ссылки на некоторый объект программы. Так, например, конструкциятипа: procedure A(const S: string); означает, что в качестве параметра процедуры будетпередаваться ссылка на строку (при этом копирования содержимого строки в стеквызова процедуры не происходит). Кроме того, содержимое строки S внутри процедуры изменитьнельзя. В C# не предусмотрено прямого эквивалента const-параметров. Тем не менее, в случаенеобходимости может быть построена семантически эквивалентная конструкция(аналогия вышеприведенному примеру): class ReadOnlyString { ReadOnlyString(string S) { this.S = S; } public readonly string S; static void Test(ReadOnlyString s) { Console.Write(s.S); } static void Main() { string s = "проверка const-параметров"; ReadOnlyString.Test(new ReadOnlyString(s)); } } Приведенный код иллюстрирует использованиеклассов- (т.н. wrappers) и полей. Контрольні питання 1. Навести поняття та характеристику типізованих констант Delphi 2. Охарактеризувати принципи застосування типізованих констант
САМОСТІЙНА РОБОТА СТУДЕНТА ЗМІСТОВИЙ МОДУЛЬ 4: ФАЙЛОВІ СТРУКТУРИ ДАНИХ. ДИНАМІЧНІ СТРУКТУРИ ДАНИХ ТЕМА 4.2: ДИНАМІЧНІ СТРУКТУРИ
Самостійне заняття №25 -Підпрограми
Дата добавления: 2014-12-25; Просмотров: 612; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |