ObsoleteAttribute Třída

Definice

Označí prvky programu, které se již nepoužívají.Marks the program elements that are no longer in use. Tuto třídu nelze zdědit.This class cannot be inherited.

public ref class ObsoleteAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
public sealed class ObsoleteAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
[System.Serializable]
public sealed class ObsoleteAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ObsoleteAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
type ObsoleteAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
[<System.Serializable>]
type ObsoleteAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Constructor | System.AttributeTargets.Delegate | System.AttributeTargets.Enum | System.AttributeTargets.Event | System.AttributeTargets.Field | System.AttributeTargets.Interface | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Struct, Inherited=false)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ObsoleteAttribute = class
    inherit Attribute
Public NotInheritable Class ObsoleteAttribute
Inherits Attribute
Dědičnost
ObsoleteAttribute
Atributy

Příklady

Následující příklad definuje třídu, která obsahuje vlastnost a metodu, která je označena ObsoleteAttribute atributem.The following example defines a class that contains a property and a method that are marked with the ObsoleteAttribute attribute. Přístup k hodnotě OldProperty vlastnosti v kódu vygeneruje upozornění kompilátoru, ale volání CallOldMethod metody vygeneruje chybu kompilátoru.Accessing the value of the OldProperty property in code generates a compiler warning, but calling the CallOldMethod method generates a compiler error. Příklad také ukazuje výstup, který je výsledkem pokusu o kompilaci zdrojového kódu.The example also shows the output that results when you attempt to compile the source code.

using System;
using System.Reflection;

public class Example
{
   // Mark OldProperty As Obsolete.
   [ObsoleteAttribute("This property is obsolete. Use NewProperty instead.", false)]
   public static string OldProperty
   { get { return "The old property value."; } }

   public static string NewProperty
   { get { return "The new property value."; } }

   // Mark CallOldMethod As Obsolete.
   [ObsoleteAttribute("This method is obsolete. Call CallNewMethod instead.", true)]
   public static string CallOldMethod()
   {
      return "You have called CallOldMethod.";
   }

   public static string CallNewMethod()
   {
      return "You have called CallNewMethod.";
   }

   public static void Main()
   {
      Console.WriteLine(OldProperty);
      Console.WriteLine();
      Console.WriteLine(CallOldMethod());
   }
}
// The attempt to compile this example produces output like the following output:
//    Example.cs(31,25): error CS0619: 'Example.CallOldMethod()' is obsolete:
//            'This method is obsolete. Call CallNewMethod instead.'
//    Example.cs(29,25): warning CS0618: 'Example.OldProperty' is obsolete:
//            'This property is obsolete. Use NewProperty instead.'
Imports System.Reflection

Public Module Example
   ' Mark OldProperty As Obsolete.
   <ObsoleteAttribute("This property is obsolete. Use NewProperty instead.", False)> 
   Public ReadOnly Property OldProperty As String
      Get
         Return "The old property value."
      End Get
   End Property
   
   Public ReadOnly Property NewProperty As String
      Get
         Return "The new property value."
      End Get
   End Property
   
   ' Mark OldMethod As Obsolete.
   <ObsoleteAttribute("This method is obsolete. Call CallNewMethod instead.", True)> 
   Public Function CallOldMethod() As String
      Return "You have called CallOldMethod."
   End Function
      
   Public Function CallNewMethod() As String   
      Return "You have called NewMethod."
   End Function   
   
   Public Sub Main()
      Console.WriteLine(OldProperty)
      Console.WriteLine()
      Console.WriteLine(CallOldMethod())
   End Sub  
End Module
'  The attempt to compile this example produces output like the following:
'    Example.vb(30) : warning BC40000: 'Public ReadOnly Property OldProperty As String' is obsolete: 
'                     'This property is obsolete. Use NewProperty instead.'.
'    
'          Console.WriteLine(OldProperty)
'                            ~~~~~~~~~~~
'    Example.vb(32) : error BC30668: 'Public Function CallOldMethod() As String' is obsolete: 
'                     'This method is obsolete. Call CallNewMethod instead.'.
'    
'          Console.WriteLine(CallOldMethod())
'                            ~~~~~~~~~~~~~

Poznámky

ObsoleteAttribute platí pro všechny prvky programu s výjimkou sestavení, modulů, parametrů a návratových hodnot.ObsoleteAttribute is applicable to all program elements except assemblies, modules, parameters, and return values. Označení elementu jako zastaralých informuje uživatele o tom, že element může být v budoucí verzi produktu odstraněn.Marking an element as obsolete informs users that the element may be removed in a future version of the product.

Řetězec přiřazený k Message vlastnosti je vygenerován kompilátorem, pokud je cíl atributu použit v kódu.The string assigned to the Message property is emitted by the compiler when the attribute target is used in code. V ideálním případě by měl řetězec poskytovat nějaké alternativní řešení nebo programovou alternativu.Ideally, the string should provide some workaround or programmatic alternative.

Použijte IsError vlastnost k označení kompilátoru, zda ObsoleteAttribute atribut using by měl způsobit, že má vyvolat chybu ( IsError is true ) nebo upozornění ( IsError je false ).Use the IsError property to indicate to the compiler whether using the ObsoleteAttribute attribute should cause it to emit an error (IsError is true) or a warning (IsError is false).

Další informace o použití atributů naleznete v tématu Attributes.For more information about using attributes, see Attributes.

Aplikace pro Store v systému Windows 8. xWindows 8.x Store apps

Když vytváříte knihovnu metadat systému Windows (soubor. winmd), ObsoleteAttribute je exportována jako ObsoleteAttribute atribut i atribut Windows. Foundation. Metadata. DeprecatedAttribute , pokud ObsoleteAttribute je ve zdrojovém kódu přítomen pouze kód.When you create a Windows Metadata library (.winmd file), the ObsoleteAttribute is exported as both the ObsoleteAttribute attribute and the Windows.Foundation.Metadata.DeprecatedAttribute attribute if only the ObsoleteAttribute is present in source code. ObsoleteAttributeJe transformována následujícím DeprecatedAttribute způsobem:The ObsoleteAttribute is transformed to the DeprecatedAttribute as follows:

  • Pokud message argumenty a error jsou oba přítomny, message jsou přiřazeny k DeprecatedAttribute message argumentu.If the message and error arguments are both present, message is assigned to the DeprecatedAttribute message argument. Hodnota chyby true mapování na DeprecationType. Removea error hodnota false map na DeprecationType..An error value of true maps to DeprecationType.Remove, and an error value of false maps to DeprecationType.Deprecate.

  • Není message -li argument zadán v ObsoleteAttribute , je jeho výchozí hodnota v DeprecatedAttribute "element_name je zastaralá", kde element_name je název elementu cílového programu, pro který je atribut použit.If the message argument is not supplied in the ObsoleteAttribute, its default value in the DeprecatedAttribute is "element_name is deprecated", where element_name is the name of the target program element to which the attribute is applied.

  • Pokud error argument není přítomen v ObsoleteAttribute , jeho výchozí hodnota DeprecatedAttribute je DeprecationType.Deprecate .If the error argument is not present in the ObsoleteAttribute, its default value in the DeprecatedAttribute is DeprecationType.Deprecate.

Důležité

Přímé Aplikování atributu Windows. Foundation. Metadata. DeprecatedAttribute na spravovaný kód se nedoporučuje, protože tento export probíhá automaticky.Directly applying the Windows.Foundation.Metadata.DeprecatedAttribute attribute to managed code is not recommended, because this export occurs automatically.

Konstruktory

ObsoleteAttribute()

Inicializuje novou instanci ObsoleteAttribute třídy s výchozími vlastnostmi.Initializes a new instance of the ObsoleteAttribute class with default properties.

ObsoleteAttribute(String)

Inicializuje novou instanci ObsoleteAttribute třídy se zadanou zprávou s alternativním řešením.Initializes a new instance of the ObsoleteAttribute class with a specified workaround message.

ObsoleteAttribute(String, Boolean)

Inicializuje novou instanci ObsoleteAttribute třídy se zprávou o alternativním problému a logickou hodnotou, která označuje, zda je použití zastaralého prvku považováno za chybu.Initializes a new instance of the ObsoleteAttribute class with a workaround message and a Boolean value indicating whether the obsolete element usage is considered an error.

Vlastnosti

DiagnosticId

Získá nebo nastaví ID, které kompilátor použije při vytváření sestav použití rozhraní API.Gets or sets the ID that the compiler will use when reporting a use of the API.

IsError

Získá hodnotu, která označuje, zda bude kompilátor považovat použití zastaralého prvku programu za chybu.Gets a value that indicates whether the compiler will treat usage of the obsolete program element as an error.

Message

Získá zprávu alternativního řešení.Gets the workaround message.

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor Attribute .When implemented in a derived class, gets a unique identifier for this Attribute.

(Zděděno od Attribute)
UrlFormat

Získá nebo nastaví adresu URL pro odpovídající dokumentaci.Gets or sets the URL for corresponding documentation. Rozhraní API přijímá řetězec formátu namísto skutečné adresy URL a vytváří obecnou adresu URL, která obsahuje ID diagnostiky.The API accepts a format string instead of an actual URL, creating a generic URL that includes the diagnostic ID.

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.Returns a value that indicates whether this instance is equal to a specified object.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.Returns the hash code for this instance.

(Zděděno od Attribute)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda je tato instance rovna zadanému objektu.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Explicitní implementace rozhraní

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.Maps a set of names to a corresponding set of dispatch identifiers.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu pro objekt, který lze použít k získání informací o typu pro rozhraní.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.Provides access to properties and methods exposed by an object.

(Zděděno od Attribute)

Platí pro

Viz také