a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
42 lines
1.9 KiB
XML
42 lines
1.9 KiB
XML
<?xml version="1.0"?>
|
|
<clause number="24.4.3" title="The Obsolete attribute">
|
|
<paragraph>The attribute Obsolete is used to mark types and members of types that should no longer be used. <code_example><![CDATA[
|
|
using System;
|
|
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct |
|
|
AttributeTargets.Enum | AttributeTargets.Interface |
|
|
AttributeTargets.Delegate | AttributeTargets.Method |
|
|
AttributeTargets.Constructor | AttributeTargets.Property |
|
|
AttributeTargets.Field | AttributeTargets.Event)]
|
|
public class ObsoleteAttribute: Attribute
|
|
{
|
|
public ObsoleteAttribute() {...}
|
|
public ObsoleteAttribute(string message) {...}
|
|
public ObsoleteAttribute(string message, bool error) {...}
|
|
public string Message { get {...} }
|
|
public bool IsError{ get {...} }
|
|
}
|
|
]]></code_example></paragraph>
|
|
<paragraph>If a program uses a type or member that is decorated with the Obsolete attribute, then the compiler shall issue a warning or error in order to alert the developer, so the offending code can be fixed. Specifically, the compiler shall issue a warning if no error parameter is provided, or if the error parameter is provided and has the value false. The compiler shall issue a compile-time error if the error parameter is specified and has the value true. </paragraph>
|
|
<paragraph>
|
|
<example>[Example: In the example <code_example><![CDATA[
|
|
[Obsolete("This class is obsolete; use class B instead")]
|
|
class A
|
|
{
|
|
public void F() {}
|
|
}
|
|
class B
|
|
{
|
|
public void F() {}
|
|
}
|
|
class Test
|
|
{
|
|
static void Main() {
|
|
A a = new A(); // warning
|
|
a.F();
|
|
}
|
|
}
|
|
]]></code_example>the class A is decorated with the Obsolete attribute. Each use of A in Main results in a warning that includes the specified message, "This class is obsolete; use class B instead." end example]</example>
|
|
<table_line/>
|
|
</paragraph>
|
|
</clause>
|