Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык C# и основы платформы .NET.docx
Скачиваний:
57
Добавлен:
11.05.2015
Размер:
203.66 Кб
Скачать

Литература

1. Албахари, Дж. C# 3.0. Справочник: Пер. с англ. / Дж. Албахари, Б. Албахари. – 3-е изд. – Спб.: БХВ-Петербург, 2009. – 944 с.: ил.

2. Рихтер, Дж. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.0 на языке C# / Дж. Рихтер. – 3-е изд. – Спб.: Питер, 2012. – 928 с.: ил.

3. Троелсен, Э. Язык программирования C# 2010 и платформа .NET4.0 / Э. Троелсен. – 5-е изд. – М.: ООО «И.Д. Вильямс», 2011. – 1392 с.: ил.

4. Хейлсберг, А. Язык программирования C#. КлассикаComputersScience. / А. Хейлсберг, М. Торгерсен, С. Вилтамут, П. Голд. – 4-е изд. – Спб.: Питер, 2012. – 784 с.: ил.

5. Цвалина, К. Инфраструктура программных проектов: соглашения, идиомы и шаблоны для многократно используемых библиотек .NET. : Пер. с англ. / К. Цвалина. – М.: ООО «И.Д. Вильямс», 2011. – 416 с.: ил.

1При записи целочисленных литералов не рекомендуется использовать суффиксl(строчная латинская букваL), так как его легко перепутать с единицей.

1В C# имеется директиваusingдля импорта пространств имён. Следует различать директивуusingи операторusing.

1Объявлениеint[,][] dataзадаёт двумерный массив, состоящий из одномерных массивов. Иными словами, спецификаторы размерностей читаются слева направо.

1В CLR есть модификатор доступа, соответствующийprotectedиinternal. Но при помощи языка C# такой уровень доступа описать нельзя.

1Разделяемыми могут быть не только классы, но структуры и интерфейсы.

2Для доступа к константе применяется синтаксисимя-класса.имя-константы.

1Индексаторы транслируются в методы с именамиget_Item()иset_Item(). Изменить имена методов можно, используя атрибут[IndexerName].

2В отличие от языка C#, CLR позволяет создавать статические индексаторы.

1ЯзыкC# допускает толькометодырасширения, свойств и индексаторов расширения не существует.

1Если класс содержит статический конструктор (возможно, пустой), компиляторC# генерирует код, выполняющий инициализацию статических полей классанепосредственноперед первым использованием класса. Без статического конструктора такая инициализация проводитсяв произвольный момент доиспользования класса.

1Формально, отobjectне наследуются типы-указатели, используемые в неуправляемом коде (например,int*), а также интерфейсы (но интерфейсы приводятся кobject).

1Операция упаковки выполняется и в случае, когда переменной типа интерфейс присваивается переменная типа значения. Этот аспект будет разобран при рассмотрении интерфейсов.

1В отличие от классов, в структуре конструктор без параметров присутствует даже при объявлении пользовательского конструктора.

1И классStack<T>, и классDictionary<K, V>рассмотрены только как примеры. В .NETFrameworkуже имеются полноценные аналоги данных классов.

1Универсальные методы могут заменить перекрытие методов в пользовательском типе, если алгоритмы работы различных версий перекрытых методов не зависят от типов параметров.

1Делегаты относятся к неизменяемым типам. Поэтому методыCombine()иRemove()возвращают новые объекты-делегаты.

1Если аргументов несколько, скобки нужно указывать. Когда лямбда-оператор не имеет входных аргументов, указываются пустые скобки.

1Поведение, аналогичное событиям, можно получить, используя открытие поля делегатов. Ключевое словоeventзаставляет компилятор проверять, что описание и генерация события происходят в одном классе, и запрещает для события все операции, кроме+=и-=.