logo search
CSharp_Prog_Guide

Атрибут Obsolete

Атрибутом Obsolete отмечается нерекомендуемая для использования сущность программы. Каждый случай использования сущности, отмеченной устаревшей, будет приводить к генерированию предупреждения или ошибки в зависимости от настроек этого атрибута. Например:

---

В этом примере атрибут Obsolete применяется к классу A и к методу B.OldMethod. Так как второй аргумент конструктора атрибута, примененный к методу B.OldMethod, имеет значение true, то использование этого метода будет приводить к ошибке компилятора, а использование класса A будет приводить только к генерированию предупреждения. Вызов метода B.NewMethod, однако, не будет приводить к генерированию предупреждения или ошибки.

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

// Generates 2 warnings:

A a = new A();

// Generate no errors or warnings:

B b = new B();

b.NewMethod();

// Generates an error, terminating compilation:

b.OldMethod();

Для класса A генерируется два предупреждения: одно из-за объявления ссылки на класс и второе из-за конструктора класса.

Атрибут Obsolete может использоваться без аргументов, но рекомендуется включать пояснение, почему соответствующий элемент является устаревшим и что следует использовать взамен.

Атрибут Obsolete является атрибутом одноразового использования и может быть применен к любой сущности, допускающей использование атрибутов. Слово Obsolete является псевдонимом класса ObsoleteAttribute.

Global Attributes

Most attributes are applied to specific language elements such as classes or methods; however, some attributes are global—they apply to an entire assembly or module. For example, the AssemblyVersionAttribute attribute can be used to embed version information into an assembly, like this:

[assembly: AssemblyVersion("1.0.0.0")]

Global attributes appear in the source code after any top-level using directives and before any type or namespace declarations. Global attributes can appear in multiple source files, but the files must be compiled in a single compilation pass.

These are some frequently used .NET Framework assembly-level attributes:

AssemblyCompanyAttribute

AssemblyConfigurationAttribute

AssemblyCopyrightAttribute

AssemblyCultureAttribute

AssemblyDescriptionAttribute

AssemblyProductAttribute

AssemblyTitleAttribute

AssemblyTrademarkAttribute

These attributes are used in projects based on the Visual Studio Windows Forms Application Template. This template includes a file called AssemblyInfo.cs, which includes these attribute instantiations:

[assembly: AssemblyTitle("WindowsApplication1")]

[assembly: AssemblyDescription("")]

[assembly: AssemblyConfiguration("")]

[assembly: AssemblyCompany("Microsoft")]

[assembly: AssemblyProduct("WindowsApplication1")]

[assembly: AssemblyCopyright("Copyright © Microsoft 2005")]

[assembly: AssemblyTrademark("")]

[assembly: AssemblyCulture("")]

Note:

Assembly-level attributes are ignored if you are not creating an assembly.