Герберт Шилдт - C# 4.0 полное руководство - 2011

Тут можно читать онлайн Герберт Шилдт - C# 4.0 полное руководство - 2011 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая старинная литература. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Герберт Шилдт - C# 4.0 полное руководство - 2011 краткое содержание

C# 4.0 полное руководство - 2011 - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

C# 4.0 полное руководство - 2011 - читать онлайн бесплатно полную версию (весь текст целиком)

C# 4.0 полное руководство - 2011 - читать книгу онлайн бесплатно, автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

АН

Assembly

Class

Constructor

Delegate

Enum

Event

Field

GenericParameter

Interface

Method

Module

Parameter

Property

ReturnValue

Struct

Два этих значения или более можно объединить с помощью логической операции ИЛИ. Например, для указания атрибута, применяемого только к полям и свойствам, используются следующие значения.

AttributeTargets.Field I AttributeTargets.Property

В классе атрибута AttributeUsage поддерживаются два именованных параметра. Первым из них является параметр AllowMultiple, принимающий логическое значение. Если это значение истинно, то атрибут может быть применен к одному и тому же элементу неоднократно. Второй именованный параметр, Inherited, также принимает логическое значение. Если это значение истинно, то атрибут наследуется производными классами, а иначе он не наследуется. По умолчанию параметр AllowMultiple принимает ложное значение (false), а параметр Inherited — истинное значение (true).

В классе атрибута AttributeUsage определяется также доступное только для чтения свойство ValidOn. Оно возвращает значение типа AttributeTargets, определяющее типы элементов, к которым можно применять объявляемый атрибут. По умолчанию используется значение AttributeTargets .All.

Атрибут Conditional

Атрибут Conditional представляет, вероятно, наибольший интерес среди всех встроенных атрибутов. Ведь он позволяет создавать условные методы , которые вызываются только в том случае, если с помощью директивы # define определен конкретный идентификатор, а иначе метод пропускается. Следовательно, условный метод служит альтернативой условной компиляции по директиве #if.

Conditional — это, по существу, еще одно наименование класса System. Diagnostics . ConditionalAttribute. Для применения атрибута Conditional в исходный код программы следует включить пространство имен System. Diagnostics. Рассмотрим применение данного атрибута на следующем примере программы.

// Продемонстрировать применение встроенного атрибута Conditional.

#define TRIAL

using System;

using System.Diagnostics;

class Test {

[Conditional("TRIAL")] void Trial() {

Console.WriteLine("Пробная версия, не " +

"предназначенная для распространения.");

[Conditional("RELEASE")] void Release () {

Console.WriteLine("Окончательная рабочая версия.");

}

static void Main() {

Test t = new Test();

t.Trial(); //вызывается только в том случае, если // определен идентификатор TRIAL t.ReleaseO; // вызывается только в том случае, если // определен идентификатор RELEASE

}

}

Эта программа дает следующий результат.

Пробная версия, не предназначенная для распространения.

Рассмотрим эту программу подробнее, чтобы стал понятнее результат ее выполнения. Прежде всего обратите внимание на то, что в этой программе определяется идентификатор TRIAL. Затем обратите внимание на определение методов Trial () и Release () . Каждому из них предшествует атрибут Conditional, общая форма которого приведена ниже:

[Conditional идентификатор]

где идентификатор обозначает конкретный идентификатор, определяющий условие выполнение метода. Данный атрибут может применяться только к методам. Если идентификатор определен, то метод выполняется, когда он вызывается. Если же идентификатор не определен, то метод не выполняется.

Оба метода, Trial () nRelease(), вызываются в методе Main (). Но поскольку определен один лишь идентификатор TRIAL, то выполняется только метод Trial (), тогда как метод Release () игнорируется. Если же определить идентификатор RELEASE, то метод Release () будет также выполняться. А если удалить определение идентификатора TRIAL, то метод Trial () выполняться не будет.

Атрибут Conditional можно также применить в классе атрибута, т.е. в классе, наследующем от класса Attribute. Так, если идентификатор определен, то атрибут применяется, когда он встречается в ходе компиляции. В противном случае он не применяется.

На условные методы накладывается ряд ограничений. Во-первых, они должны возвращать значение типа void, а по существу, ничего не возвращать. Во-вторых, они должны быть членами класса или структуры, а не интерфейса. И в-третьих, они не могут предшествовать ключевому слову override.

Атрибут Obsolete

Атрибут Obsolete (сокращенное наименование класса System. Obso-leteAttribute) позволяет пометить элемент программы как устаревший. Ниже приведена общая форма этого атрибута:

[Obsolete ( "сообщение ") ] где сообщение выводится при компилировании элемента программы, помеченного как устаревший. Ниже приведен краткий пример применения данного атрибута.

// Продемонстрировать применение атрибута Obsolete, using System; class Test {

[Obsolete("Лучше использовать метод MyMeth2.")] public static int MyMeth(int a, int b) { return a / b;

}

// Усовершенствованный вариант метода MyMeth. public static int MyMeth2(int a, int b) { return b == 0 ? 0 : a /b;

}

static void Main() {

// Для этого кода выводится предупреждение.

Console.WriteLine("4 / 3 равно " + Test.MyMeth(4, 3));

//А для этого кода предупреждение не выводится.

Console.WriteLine("4 / 3 равно " + Test.MyMeth2(4, 3));

}

}

Когда по ходу компиляции программы в методе Main () встречается вызов метода MyMeth () , формируется предупреждение, уведомляющее пользователя о том, что ему лучше воспользоваться методом MyMeth2 ().

Ниже приведена вторая форма атрибута Obsolete:

[Obsolete ("сообщение", ошибка)]

где ошибка обозначает л отческое значение. Если это значение истинно (true), то при использовании устаревшего элемента формируется сообщение об ошибке компиляции вместо предупреждения. Эта форма отличается тем, что программа, содержащая подобную ошибку, не будет скомпилирована в исполняемом виде.

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

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

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




C# 4.0 полное руководство - 2011 отзывы


Отзывы читателей о книге C# 4.0 полное руководство - 2011, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


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

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