Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 28

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 22 23 24 25 26 27 < 28 > 29 30 31 32 33 34 .. 320 >> Следующая

System. Decimal Decimal decimal Decimal
System. Boolean Boolean bool bool
Как видно из таблицы, не все языки .NET могут работать с некоторыми ными типами данных CTS. Поэтому очень важно определить такой набор типов (и программных конструкций), с которым гарантированно смогут работать любые .NET-совместимые языки программирования. Такой набор есть, и он называется CLS.
Основы CLS
Нет необходимости доказывать, что одни и те же программные конструкции в ных языках выглядят абсолютно по-разному. Например, в С# объединение строк (конкатенация) производится с помощью оператора плюс (+), в то время как в Visual Basic для этой же цели используется амперсанд (S). А вот как выглядит в разных языках функция, не возвращающая значений:
1 Функция (подпроцедура) VBasic. которая ничего не 1 возвращает (возвращает значение типа void): Public Sub Foot)
1 Что-тоделаєи...
End Sub
// же функция В С#:
public void FooO
48 Глава 1 • Философия ,NET
// Делаем то же самое,. .
}
Как мы уже для среды выполнения такая разница в синтаксисе
абсолютно безразлична: все равно соответствующие компиляторы (в нашем случае vbc.exe и csc.exe) создадут одинаковый код IL. Однако языки программирования отличаются не только синтаксисом, но и возможностями. Например, в одних языках программирования разрешена перегрузка операторов, а в других - нет. Одни языки могут использовать беззнаковые (unsigned) типы данных, а в других такие типы данных не предусмотрены. Вывод очевиден — нам нужны некие единые правила для всех языков .NET. Если мы им следуем, то гарантируется, что программные модули, написанные на разных языках, будут нормально взаимодействовать друг сдругом. Такой набор правил определен в спецификации CLS (Common Language Specification).
Набор определяемый CLS, не только гарантирует нормальное взаимо-
действие блоков кода, созданных на разных языках. Такой набор правил еще и определяет минимальные требования, которые предъявляются к любому .NET-совме-стимому компилятору. Необходимо помнить, что в CLS — это лишь часть тех
возможностей, которые определены в CTS.
Правилам CLS должны удовлетворять и инструментальные средства среды разработки — если мы хотим обеспечить межъязыковое взаимодействие, они должны
генерировать только такой код, который соответствует требованиям CLS. У каждого правила CLS есть простое название (например, CLS Rule 6 — правило CLS номер 6). Бот пример одного из правил (это самое важное правило — правило номер 1):
• Правило Правила CLS относятся только к тем частям типа, которые предназначены для взаимодействия за пределами сборки, в которой они определены.
Из этого правила явствует, что во внутренней логике при реализации какого-либо типа вы можете сколько угодно нарушать правила CLS — это ни на что не повлияет. Например, предположим, что вы создаете приложение которое
взаимодействует с внешним миром с помощью трех классов, а в каждом из этих классов есть только одна функция. Правилам в этом случае должны удовлетворять только три этих функции-члена (в отношении области видимости, соглашений об именовании, типов принимаемых параметров и т. д.). Во внутренней реализации этих функций, классов или приложения в целом может быть сколько угодно отступлений от правил CLS — за пределами вашего программного модуля никто об этом никогда не узнает.
Конечно, в CLS существует не только правило но и множество других правил. В CLS, к примеру, строгие требования предъявлены к представлению символьных значений, к определению перечислений, к использованию статических членов и т. д. Однако заучивать эти правила совершенно не обязательно (конечно, если вы не заняты созданием .NET-совместимого компилятора для своего собственного языка программирования). Если вам потребовалась дополнительная информация по CLS, произведите поиск в MSDN по словосочетанию ^Collected CLS Rules».
Работа с пространствами имен 49
Работа с пространствами имен
Мы закончили обзор среды выполнения .NET и теперь обратимся к особенностям библиотеки базовых классов .NET. Важность библиотек кода очевидна. Например, библиотека MFC определяет набор классов C++ для создания диалоговых окон, меню и панелей управления. В результате программисты могут не заниматься изобретением того, что давным-давно уже сделано до них, а сосредоточиться на уникальных аспектах создаваемого ими приложения. Аналогичные средства существуют и в Visual Basic, и в Java, и во всех остальных языках программирования.
Однако в отличие от MFC, Visual Basic и Java в С# не существует библиотеки базовых классов только для этого языка. Можно сказать, что библиотека базовых классов С# вообще не существует. Вместо этого разработчики на С# используют библиотеку базовых типов для всей среды ЛЕТ. А для лучшей организации типов внутри этой библиотеки используется концепция пространств имен.
Главное отличие от библиотек, привязанных к конкретному языку (типа M !;С », заключается в том, что в любом .NET-совместимом языке используются те же самые типы и те же самые пространства имен, что и в С#. Вот три приложения (весьма напоминающих классическое HeI Io. World) на трех разных .NET-совместимых языках: С#, VB.NET и Managed C++ (МС++).
Предыдущая << 1 .. 22 23 24 25 26 27 < 28 > 29 30 31 32 33 34 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100