ObsoleteAttribute Classe

Definição

Marca os elementos do programa que não estão mais em uso.Marks the program elements that are no longer in use. Essa classe não pode ser herdada.This class cannot be inherited.

public ref class ObsoleteAttribute sealed : Attribute
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)]
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
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)>]
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
Herança
ObsoleteAttribute
Atributos

Exemplos

O exemplo a seguir define uma classe que contém uma propriedade e um método que são marcados com o ObsoleteAttribute atributo.The following example defines a class that contains a property and a method that are marked with the ObsoleteAttribute attribute. O acesso ao valor da OldProperty propriedade no código gera um aviso do compilador, mas chamar o CallOldMethod método gera um erro do compilador.Accessing the value of the OldProperty property in code generates a compiler warning, but calling the CallOldMethod method generates a compiler error. O exemplo também mostra a saída que resulta quando você tenta compilar o código-fonte.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())
'                            ~~~~~~~~~~~~~

Comentários

ObsoleteAttribute é aplicável a todos os elementos do programa, exceto assemblies, módulos, parâmetros e valores de retorno.ObsoleteAttribute is applicable to all program elements except assemblies, modules, parameters, and return values. Marcar um elemento como obsoleto informa aos usuários que o elemento pode ser removido em uma versão futura do produto.Marking an element as obsolete informs users that the element may be removed in a future version of the product.

A cadeia de caracteres atribuída à Message propriedade é emitida pelo compilador quando o destino do atributo é usado no código.The string assigned to the Message property is emitted by the compiler when the attribute target is used in code. O ideal é que a cadeia de caracteres forneça alguma alternativa alternativa ou programática.Ideally, the string should provide some workaround or programmatic alternative.

Use a IsError propriedade para indicar ao compilador se o uso do ObsoleteAttribute atributo deve fazer com que ele emita um erro ( IsError is true ) ou um aviso ( IsError is 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).

Para obter mais informações sobre como usar atributos, consulte atributos.For more information about using attributes, see Attributes.

Aplicativos da loja do Windows 8. xWindows 8.x Store apps

Quando você cria uma biblioteca de metadados do Windows (arquivo. winmd), o ObsoleteAttribute é exportado como o ObsoleteAttribute atributo e o atributo Windows. Foundation. Metadata. DeprecatedAttribute se apenas o ObsoleteAttribute estiver presente no código-fonte.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. O ObsoleteAttribute é transformado para o da DeprecatedAttribute seguinte maneira:The ObsoleteAttribute is transformed to the DeprecatedAttribute as follows:

  • Se os message error argumentos e estiverem presentes, message será atribuído ao DeprecatedAttribute message argumento.If the message and error arguments are both present, message is assigned to the DeprecatedAttribute message argument. Um valor de erro de é true mapeado para DeprecationType. Removee um error valor de false Maps para DeprecationType. preterite.An error value of true maps to DeprecationType.Remove, and an error value of false maps to DeprecationType.Deprecate.

  • Se o message argumento não for fornecido no ObsoleteAttribute , seu valor padrão no DeprecatedAttribute será "element_name é preterido", em que element_name é o nome do elemento do programa de destino ao qual o atributo é aplicado.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.

  • Se o error argumento não estiver presente no ObsoleteAttribute , seu valor padrão no DeprecatedAttribute será DeprecationType. preterite.If the error argument is not present in the ObsoleteAttribute, its default value in the DeprecatedAttribute is DeprecationType.Deprecate.

Importante

A aplicação direta do atributo Windows. Foundation. Metadata. DeprecatedAttribute ao código gerenciado não é recomendada, pois essa exportação ocorre automaticamente.Directly applying the Windows.Foundation.Metadata.DeprecatedAttribute attribute to managed code is not recommended, because this export occurs automatically.

Construtores

ObsoleteAttribute()

Inicializa uma nova instância da classe ObsoleteAttribute com propriedades padrão.Initializes a new instance of the ObsoleteAttribute class with default properties.

ObsoleteAttribute(String)

Inicializa uma nova instância da classe ObsoleteAttribute com uma mensagem de solução alternativa especificada.Initializes a new instance of the ObsoleteAttribute class with a specified workaround message.

ObsoleteAttribute(String, Boolean)

Inicializa uma nova instância da classe ObsoleteAttribute com uma mensagem de solução alternativa e um valor booliano indicando se o uso do elemento obsoleto é considerado um erro.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.

Propriedades

DiagnosticId

Obtém ou define a ID que o compilador usará ao relatar um uso da API.Gets or sets the ID that the compiler will use when reporting a use of the API.

IsError

Obtém um valor que indica se o compilador tratará o uso de elementos obsoletos do programa como um erro.Gets a value that indicates whether the compiler will treat usage of the obsolete program element as an error.

Message

Obtém a mensagem de solução alternativa.Gets the workaround message.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Herdado de Attribute)
UrlFormat

Obtém ou define a URL para a documentação correspondente.Gets or sets the URL for corresponding documentation. A API aceita uma cadeia de caracteres de formato em vez de uma URL real, criando uma URL genérica que inclui a ID de diagnóstico.The API accepts a format string instead of an actual URL, creating a generic URL that includes the diagnostic ID.

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.Returns the hash code for this instance.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.Maps a set of names to a corresponding set of dispatch identifiers.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.Provides access to properties and methods exposed by an object.

(Herdado de Attribute)

Aplica-se a

Veja também