Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Тут можно читать онлайн Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2007
  • Город:
    Москва • Санкт-Петербург • Киев
  • ISBN:
    ISBN 5-8459-1124-9
  • Рейтинг:
    3.2/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание краткое содержание

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - описание и краткое содержание, автор Эндрю Троелсен, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать онлайн бесплатно полную версию (весь текст целиком)

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать книгу онлайн бесплатно, автор Эндрю Троелсен
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Imports CarLibrary

Module Module1

Sub Маin()

End Sub

End Module

Обратите внимание на то, что метод Main() определен в рамках типа Module Visual Basic .NET (который не имеет ничего общего с файлами *.netmodule многомодульных компоновочных блоков). В Visual Basic .NET Module используется просто для обозначения определения изолированного класса, содержащего только статические методы. Чтобы сделать это утверждение более понятным, вот аналог соответствующей конструкции в C#.

// 'Module' в VB .NET - это просто изолированный класс,

// содержащий статические методы.

public sealed class Module1 {

public static void Main() {

}

}

Так или иначе, чтобы использовать типы MiniVan и SportsCar в рамках синтаксиса Visual Basic .NET, измените метод Main() так, как предлагается ниже.

Sub Main()

Console.WriteLine("***** Забавы с Visual Basic .NET *****")

Dim myMiniVan As New MiniVan()

myMiniVan.TurboBoost()

Dim mySportsCar As New SportsCar()

mySportsCar.TurboBoost()

Console.ReadLine()

End Sub

После компиляции и выполнения приложения вы снова увидите соответствующий набор окон с сообщениями.

Межъязыковое перекрестное наследование

Весьма привлекательной возможностью .NET является межъязыковое перекрестное наследование . Для примера давайте создадим новый класс Visual Basic .NET, который будет производным от SportsCar (напомним, что последний был создан в C#). Сначала добавим файл нового класса с именем PerformanceCar.vb в имеющееся приложение Visual Basic .NET (с помощью выбора Project→Add Class из меню). Обновим исходное определение класса путем получения производного типа из SportsCar, используя ключевое слово Inherits. Кроме того, переопределим абстрактный метод TurboBoost(), используя для этого ключевое слово Overrides.

Imports CarLibrary

' Этот VB-тип является производным C#-типа SportsCar.

Public Class PerformanceCar Inherits SportsCar

Public Overrides Sub TurboBoost()

Console.WriteLine("От нуля до 100 за какие-то 4,8 секунды…")

End Sub

End Class

Чтобы проверить работу нового типа класса, обновите метод Main() модуля так.

Sub Main()

Dim dreamCar As New PerformanceCar()

' Наследуемое свойство.

dreamCar.PetName = "Hank"

dreamCar.TurboBoost()

Console.ReadLine()

End Sub

Обратите внимание на то, что объект dreamCar способен вызывать любые открытые члены (например, свойство PetName) по цепочке наследования, несмотря на то, что базовый класс определен на совершенно другом языке и в другой библиотеке программного кода.

Исходный код. Проект VbNetCarClient размещен в подкаталоге, соответствующем Главе 11.

Создание и использование многомодульных компоновочных блоков

Теперь, когда вы научились строить и использовать одномодульные компоновочные блоки, рассмотрим процесс создания многомодульных компоновочных блоков, Напомним, что многомодульный компоновочный блок – это просто набор связанных модулей, инсталлируемых как цельная единица и контролируемых по единому номеру версии. На момент создания этой книги в Visual Studio 2005 не предлагался шаблон проекта дли многомодульного компоновочного блока C#. Поэтому для построения такого проекта вам придется использовать компилятор командной строки (csc.exe).

Для примера мы с вами построим многомодульный компоновочный блок с названием AirVehicles (авиатранспорт). Первичный модуль (airvehicles.dll) будет содержать один тип класса Helicopter (вертолет). Соответствующий манифест (также содержащийся в airvehicles.dll) каталогизирует дополнительный файл *.netmodule с именем ufo.netmodule, который будет содержать другой тип класса, называющийся, конечно же, Ufo (НЛО). Эти два типа класса физически содержатся в отдельных двоичных файлах, но мы сгруппируем их в одном пространстве имен, названном AirVehicles. Наконец, оба класса будут созданы с помощью C# (хотя вы, если хотите, можете использовать и разные языки).

Для начала откройте простой текстовый редактор (например, Блокнот) и создайте следующее определение класса Ufo, сохранив затем его в файле с именем ufo.cs.

using System;

namespace AirVehicles {

public class Ufo {

public void AbductHuman() {

Console.WriteLine("Сопротивление бесполезно");

}

}

}

Чтобы скомпилировать этот класс в .NET-модуль, перейдите в папку, содержащую ufo.cs. и введите следующую команду компилятору C# (опция module флага /target "информирует" csc.exe о том, что необходимо построить файл *.netmodule, а не *.dll или *.exe).

csc.exe /t:module ufo.cs

Если теперь заглянуть в папку, содержащую файл ufo.cs, вы должны увидеть новый файл с именем ufo.netmodule (проверьте!). После этого создайте новый файл с именем helicopter.cs, содержащий следующее определение класса.

using System;

namespace AirVehicles {

public class Helicopter {

public void TakeOff() {

Console.WriteLine("Вертолет на взлет!");

}

}

}

Поскольку название airvehicles.dll было зарезервировано для первичного модуля нашего многомодульного компоновочного блока, вам придется компилировать helicopter.cs с использованием опций /t:library и /out:. Чтобы поместить запись о двоичном объекте ufo.netmodule в манифест компоновочного блока, вы должны также указать флаг /addmodule. Все это делает следующая команда.

csc /t:library /addmodule:ufo.netmodule /out:airvehicles.dll helicopter.cs

К этому моменту ваш каталог должен содержать первичный модуль airvehicles.dll, а также вторичный ufo.netmodule.

Анализ файла ufo.netmodule

Теперь с помощью ildasm.exe откройте ufo.netmodule. Вы убедитесь, что *.netmodule содержит манифест уровня модуля, однако его единственной целью является указание списка всех внешних компоновочных блоков, на которые есть ссылки в соответствующем программном коде. Поскольку класс Ufo, по сути, выполняет только вызов Console.WriteLine(), вы обнаружите следующее.

.assembly extern mscorlib {

.publickeytoken = (B7 7A 5C 56 19 34 E0 89)

.ver 2:0:0:0

}

.module ufo.netmodule

Анализ файла airvehicles.dll

Теперь в помощью ildasm.exe откройте первичный модуль airvehicles.dll и рассмотрите манифест уровня компоновочного блока. Вы увидите, что лексемы.file документируют ассоциированные модули многомодульного компоновочного блока (в данном случае ufo.netmodule). Лексемы.class extern используются для указания имен внешних типов из вторичного модуля (Ufo) , на которые имеются ссылки.

.assembly extern mscorlib {

.publickeytoken = (B7 7A 5C 56 19 34 E0 89)

.ver 2:0:0:0

}

.assembly airvehiсles {

.hash algorithm 0x00008004

.ver 0:0:0:0

}

.file ufо. netmodule

.class extern public AirVehicles.Ufo {

.file ufo.netmodule

.class 0x02000002

}

.module airvehicles.dll

Снова подчеркнем, что манифест компоновочного блока является единственным объектом, связывающим airvehicles.dll и ufo.netmodule. Указанные два бинарных файла не содержатся в одном, большем *.dll.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Эндрю Троелсен читать все книги автора по порядку

Эндрю Троелсен - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание отзывы


Отзывы читателей о книге ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание, автор: Эндрю Троелсен. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x