awshmel · 10-Дек-10 03:52(14 лет 6 месяцев назад, ред. 10-Дек-10 18:56)
Особенности объектно-ориентированного программирования на C++/CLI, C# и Java. 2-е издание. Год: 2010 Автор: Медведев В.И. Жанр: программирование Издательство: РИЦ «Школа», Казань ISBN: 978-5-4233-0007-4 Серия: Современная прикладная математика и информатика Язык: Русский Формат: PDF Качество: Распознанный текст с ошибками (OCR) Количество страниц: 444 Описание: Излагаются основные понятия и методика разработки объектно-ориентированных программ на языках C++/CLI, C# и Java (J#). Изложение сопровождается многочисленными примерами законченных программ. Программы поясняются диаграммами языка UML. Особое внимание акцентировано на наиболее сложных для понимания делегатах, событиях, уведомлениях, потоках и их синхронизации. Параллельное изложение схожих основных языковых конструкций позволит лучше выявить не только близость и различие языков C++/CLI, C# и Java, но и лучше понять особенности этих языков. Для студентов и преподавателей вузов по направлению вычислительной техники и информатики. Представляет интерес для всех, знающих язык С и изучающих объектно-ориентированное программирование, а также для тех, кто, овладев языком С++, интересуется особенностями и отличиями программирования на языках C++/CLI, Java(J#) и C#.
В языке C# типы-значения размещаются в стеке, а управляемые
данные, созданные посредством оператора new, в управляемой куче. Сам
компилятор соотносит данные программы к тому или иному типу. Перемен-
ные, ссылаемые к управляемым данным, имеют ссылочный тип. Остальные
переменные имеют тип-значение.
Первое утверждение противоречит Рихтеру
Выделенную фразу не понял вообще. Такое ощущение, что это результат некачественного перевода Новичку точно не рекомендовал-бы.
В языке C# типы-значения размещаются в стеке, а управляемые
данные, созданные посредством оператора new, в управляемой куче. Сам
компилятор соотносит данные программы к тому или иному типу. Перемен-
ные, ссылаемые к управляемым данным, имеют ссылочный тип. Остальные
переменные имеют тип-значение.
И что тут неправильно? Вы наверное плохо читали Рихтера
Не спорю, вполне может быть.
Но на всякий случай перечитайте
ГЛАВА 5 Элементарные, ссылочные и значимые типы
Перечитаю, когда выйдет новое издание :), а так недавно читал C# 2010 Ускоренный курс. Эта книга не хуже Рихтера. Во многих моментах даже лучше. Медведев просто неточно написал. Оператор new необязательно создает объекты в управляемой куче, можно же его вызвать и для структур - значимых типов. Значимые типы храняться в стеке. Ссылочные в управляемой куче, в стеке храняться только ссылки на них. Значимые типы тоже могут храниться в управляемой куче (boxing), но это будут уже копии объектов из стека. Поэтому я считаю, что Медведев написал верно, хотя и не совсем по-русски Новичкам будет сложно разобраться в таком тексте. Да и я скептически отношусь к таким книгам, где описано такое количество языков.
В языке C# типы-значения размещаются в стеке, а управляемые
данные, созданные посредством оператора new, в управляемой куче. Сам
компилятор соотносит данные программы к тому или иному типу. Перемен-
ные, ссылаемые к управляемым данным, имеют ссылочный тип. Остальные
переменные имеют тип-значение.
И что тут неправильно? Вы наверное плохо читали Рихтера
Утверждение "типы-значения размещаются в стеке" ложно. Экземпляры типов-значений, прекрасно размещаются в куче (причем без какой-либо упаковки), если они к примеру являются полями класса.
Цитата:
Значимые типы тоже могут храниться в управляемой куче (boxing), но это будут уже копии объектов из стека.
Нет.
Код:
class Foo
{
int Field;
} ... // Естественно Field располагается в куче без упаковки.
var f = new Foo();
В дальнейшем в книге диаграммы языка UML будут использоваться
при разработке некоторых программ с единственной целью-познакомить
читателя с нотацией этогоязыка. Язык UML довольно-таки богат,и при необходимости освоить его по многочисленной литературе.
Или пропущено слово, или не правильный оборот. Хоть я и новичок, но материал изложен очень доходчиво и понятно. Можно обжечься только на переводе. Если б ещё все было написано только по C# в таком же стиле, было бы совсем чудесно.
Книжки Медведев В.И. хороши , когда я у него учился думал какие дерьмовые книги, но как начал прогить взял книги американцев , вообще г. откопал книги с универа все понятно и ясно , в примерах все разобрано подробно !
В языке C# типы-значения размещаются в стеке, а управляемые
данные, созданные посредством оператора new, в управляемой куче. Сам
компилятор соотносит данные программы к тому или иному типу. Перемен-
ные, ссылаемые к управляемым данным, имеют ссылочный тип. Остальные
переменные имеют тип-значение.
Первое утверждение противоречит Рихтеру
Выделенную фразу не понял вообще. Такое ощущение, что это результат некачественного перевода Новичку точно не рекомендовал-бы.
Перемен-
ные, ссылаемые к управляемым данным, имеют ссылочный тип
написано излишне усложненно, но в общем смысл прост, Переменные размещенные в управляемой куче, имеют ссылочный тип. Что повторяет в точности, то что было написано ранее: В языке C# типы-значения размещаются в стеке, а управляемые
данные, созданные посредством оператора new, в управляемой куче.