Базовые типы и операции над ними языка C#. Инструкции и выражения языка C#.




Пользовательские типы языка C#. Наследование языка C#. Элементы типов.


Дополнительные элементы описания операций.

В C# имеются конструкции, позволяющие описывать операции с неопределенным числом параметров. Для этого последний параметр нужно пометить специальным образом. Этот параметр интерпретируется как массив значений указанного типа. При вызове такой операции можно указать обычный массив в качестве ее последнего параметра, либо просто перечислить через запятую значения элементов этого массива.

В C# нужно указать модификатор params, тип самого массива и имя параметра.
В C# исключения, возникновение которых возможно при работе метода, никак не описываются.
В C# можно определить параметры операций, передаваемые по ссылке, и выходные параметры операций. Параметры, передаваемые по ссылке, помечаются модификаторов ref. Выходные параметры помечаются модификатором out. При вызове операции значения этих параметров должны быть помечены так же.
  }

Описание метаданных

В C# имеются встроенные средства для некоторого их расширения, для описания так называемых метаданных — данных, описывающих элементы кода. Это специальные модификаторы у типов, элементов типов и параметров операций, называемые— атрибутами (attributes). Один элемент кода может иметь несколько таких модификаторов.

Такие данные служат для указания дополнительных свойств классов, полей, операций и параметров операций. Например Можно пометить методы, которые должны работать только в рамках транзакций или, наоборот, только вне транзакций.

Метаданные служат встроенным механизмом расширения языка, позволяя описывать простые дополнительные свойства сущностей этого языка в нем самом, не разрабатывая каждый раз специализированные трансляторы.


Средства создания многопоточных программ.

В C# возможно создание многопоточных приложений. Каждая программа на этих языках представляет собой набор потоков (threads), выполняющихся параллельно. Каждый поток является исполняемым элементом, имеющим свой собственный поток управления и стек вызовов операций. Все потоки в рамках одного процесса имеют общий набор ресурсов, общую память, общий набор объектов, с которыми могут работать.

В C# можно использовать два способа. С помощью первого можно создать обычный поток, с помощью второго — поток, которому при запуске нужно передать какие-то данные. Для этого нужно определить метод, который будет выполняться в рамках потока. Этот метод должен иметь тип результата void. Список его параметров в первом случае должен быть пустым, во втором — состоять из одного параметра типа object.  

При разработке приложений, основанных на параллельном выполнении нескольких потоков, большое значение имеют вопросы синхронизации работы этих потоков. Синхронизация позволяет согласовывать их действия и аккуратно передавать данные, полученные в одном потоке, в другой.

В C# имеются конструкции, которые реализуют синхронизационный примитив, называемый монитором (monitor). Монитор представляет собой объект, позволяющий потокам «захватывать» и «отпускать» себя. Только один поток может «держать» монитор в некоторый момент времени — все остальные, попытавшиеся захватить монитор после его захвата этим потоком, будут приостановлены до тех пор, пока этот поток не отпустит монитор.

Для синхронизации используется конструкция, гарантирующая, что некоторый участок кода в каждый момент времени выполняется не более чем одним потоком. Такой участок помещается в блок, которому предшествует указание объекта-монитора с ключевым словом lock.

 


Библиотеки.

Платформа .NET, в большой степени опираются на библиотеки готовых компонентов. Ведется постоянная работа по выработке стандартных интерфейсов компонентов для решения различных задач в разных предметных областях. По достижении определенной степени зрелости такие интерфейсы включаются в стандартные библиотеки.

Разработка библиотек .NET ведется, в основном, силами программистов, работающих в Microsoft и некоторых ее партнерах.


Дата добавления: 2018-05-13; просмотров: 383; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!