Вопрос№39 выражения в языке C#. 


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



ЗНАЕТЕ ЛИ ВЫ?

Вопрос№39 выражения в языке C#.



Выражения строятся из операндов (констант, переменных, функций) объединенных знаками операций и скобками.

При вычислении выражения определяется:

1) его значение и тип. Эти характеристики однозначно задаются значениями и типами операндов, входящих в выражение и правилами вычисления выражений.

2) Правила задают приоритет операций. Для операции 1 приоритета порядок выполнения: слева направо или справа налево.

3) Преобразование типов операндов и выбор реализации для перегруженных операций.

4) Типы, значения результатов выполнения операции над заданными значениями операндов определенного типа.

Программист записывающий выражение должен знать, по каким правилам оно должно выполняться.

Приоритет и порядок выполнения операций:

Приоритет Категории Операции Порядок
  Первичные (expr) x.y f(x) a[x] x++ x—new sizeof(t) typeof(t) checked(expr) unchecked(expr) С - П
  Унарные + -! ~ ++x --x (T)x С - П
  Мультипликативные (умножение) * / % С - П
  Аддитивные (Сложение) + - С - П
  Сдвиг << >> С - П
  Отношения, проверка типов < > <= >= is as С - П
  Эквивалентность ==!= С - П
  Логическое И & С - П
  Логическое исключающее ИЛИ (XOR) ^ С - П
  Логическое ИЛИ (OR) | С - П
  Условное И && С - П
  Условное ИЛИ || С - П
  Условное выражение ?: С - Л
  Присваивание = *= /= %= += -= <<= >>= &= ^= |= С - Л

Вопрос№40 Инструкция Using.

Часто возникает необходимость освободить ресурсы некоторого объекта независимо от того записано там исключение или нет. Это можно сделать вручную, поместив блок кода внутри try и добавить блок finally, в котором освобождаются ресурсы объекта с помощью метода IDispose.

Удобнее использовать конструкцию Using. При ее использовании код будет помещен в блок try, а после try будет добавлен в блок finally.

Пример:

Using (Some Class sc = new Some Class())

{

Sc.DoSomething():

}

Some Class sc = new some Class():

Try

{

Sc.DoSomething():

}

Finally

{

If (sc!=null) ((IDisposible) sc.Dispose))

}

Вопрос№41 Средства ввода-вывода

Пространство имен System.IO представляет типы, которые позволяют выполнять следующие действия с файлами каталогами: синхронизация и асинхронизация, чтение и запись данных в потоки или файлы.

Типы, манипулирующие файлами и производящие чтение и запись не работают на прямую с файлами, а представляют собой функции и структуры для работы с файлами, предоставляемыми операционной системой Windows.

Вопрос№43Атрибуты

Атрибуты предоставляют универсальные средства связи данных (в виде аннотаций) с типами, определенными на С#. Вы можете применять их для определения информации периода разработки (например, документации), периода выполнения (например, имя столбца БД) или даже характеристик поведения периода выполнения (например, может ли данный член участвовать в транзакции). Возможности атрибутов бесконечны. Поскольку вы можете создавать атрибуты на основе любой информации, существует стандартный механизм определения самих атрибутов и запроса членов или типов в период выполнения как связанных с ними атрибутов.Лучше объяснить использование атрибутов на примере. Допустим, у вас есть приложение, хранящее некоторые данные в реестре. Одна из проблем разработки связана с выбором места хранения информации о разделе реестра. В большинстве сред разработки она, как правило, хранится в файле ресурсов, в константах или даже жестко запрограммирована в вызовах API реестра. Однако мы снова имеем ситуацию, когда неотъемлемая часть класса хранится отдельно от определения остальной части класса. Атрибуты позволяют "прикреплять" эту информацию к членам класса, получая полностью самоописывающийся компонент. Вот пример, иллюстрирующий, как это может выглядеть, если предположить, что атрибут RegistryKey уже определен:

class MyClass {

[RegistryKey(HKEY_CURRENT_USER, "foo")] public int Foo; }Чтобы прикрепить определенный атрибут к типу или члену С#, нужно просто задать данные атрибута в скобках перед целевым типом или членом. В нашем примере мы прикрепили атрибут RegistryKey к полю MyClass.Foo. Как вы вскоре увидите, все, что нам надо сделать в период выполнения, — это запросить значение поля, связанное с разделом реестра и использовать его, чтобы сохранить дату в реестре.Определение атрибутов В предыдущем примере синтаксис прикрепления атрибута к типу или члену похож на тот, что применяется при создании экземпляра класса. Дело в том, что атрибут на самом деле является классом, производным от базового класса System.Attribute.

 


 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 229; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.203.58.132 (0.02 с.)