Атрибут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),то при использовании устаревшего элемента формируется сообщение об ошибке компиляции вместо предупреждения. Эта форма отличается тем, что программа, содержащая подобную ошибку, не будет скомпилирована в исполняемом виде.

ГЛАВА 18 Обобщения

Эта глава посвященаобобщениям —одному из самых сложных и эффективных средств С#. Любопытно, что обобщения не вошли в первоначальную версию 1.0 и появились лишь в версии 2.0, но теперь они являются неотъемлемой частью языка С#. Не будет преувеличением сказать, что внедрение обобщений коренным образом изменило характер С#. Это нововведение не только означало появление нового элемента синтаксиса данного языка, но и открыло новые возможности для внесения многочисленных изменений и обновлений в библиотеку классов. И хотя после внедрения обобщений прошло уже несколько лет, последствия этого важного шага до сих пор сказываются на развитии C# как языка программирования.

Перейти на страницу:

Похожие книги