ObsoleteAttribute Classe

Definizione

Contrassegna gli elementi del programma che non vengono più utilizzati.Marks the program elements that are no longer in use. La classe non può essere ereditata.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
Ereditarietà
ObsoleteAttribute
Attributi

Esempio

Nell'esempio seguente viene definita una classe che contiene una proprietà e un metodo contrassegnati con l' ObsoleteAttribute attributo.The following example defines a class that contains a property and a method that are marked with the ObsoleteAttribute attribute. L'accesso al valore della OldProperty proprietà nel codice genera un avviso del compilatore, ma la chiamata al CallOldMethod metodo genera un errore del compilatore.Accessing the value of the OldProperty property in code generates a compiler warning, but calling the CallOldMethod method generates a compiler error. Nell'esempio viene inoltre illustrato l'output risultante quando si tenta di compilare il codice sorgente.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())
'                            ~~~~~~~~~~~~~

Commenti

ObsoleteAttribute è applicabile a tutti gli elementi del programma ad eccezione di assembly, moduli, parametri e valori restituiti.ObsoleteAttribute is applicable to all program elements except assemblies, modules, parameters, and return values. Contrassegnare un elemento come obsoleto informa gli utenti che l'elemento può essere rimosso in una versione futura del prodotto.Marking an element as obsolete informs users that the element may be removed in a future version of the product.

La stringa assegnata alla Message proprietà viene emessa dal compilatore quando la destinazione dell'attributo viene utilizzata nel codice.The string assigned to the Message property is emitted by the compiler when the attribute target is used in code. Idealmente, la stringa deve fornire una soluzione alternativa o alternativa a livello di codice.Ideally, the string should provide some workaround or programmatic alternative.

Utilizzare la IsError proprietà per indicare al compilatore se l'utilizzo dell' ObsoleteAttribute attributo deve causare la generazione di un errore ( IsError is true ) o di un avviso ( 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).

Per ulteriori informazioni sull'utilizzo degli attributi, vedere attributi.For more information about using attributes, see Attributes.

App di Windows 8. x StoreWindows 8.x Store apps

Quando si crea una libreria di metadati Windows (file con estensione winmd), ObsoleteAttribute viene esportata sia come ObsoleteAttribute attributo che come attributo Windows. Foundation. Metadata. DeprecatedAttribute se ObsoleteAttribute nel codice sorgente è presente solo l'oggetto.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. ObsoleteAttributeViene trasformato in DeprecatedAttribute come segue:The ObsoleteAttribute is transformed to the DeprecatedAttribute as follows:

  • Se gli message error argomenti e sono entrambi presenti, message viene assegnato all' DeprecatedAttribute message argomento.If the message and error arguments are both present, message is assigned to the DeprecatedAttribute message argument. Il valore di errore viene true mappato a DeprecationType. Removee il error valore di viene false mappato a DeprecationType. deprecate.An error value of true maps to DeprecationType.Remove, and an error value of false maps to DeprecationType.Deprecate.

  • Se l' message argomento non viene fornito in ObsoleteAttribute , il relativo valore predefinito in DeprecatedAttribute è "element_name è deprecato", dove element_name è il nome dell'elemento del programma di destinazione a cui è applicato l'attributo.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 l' error argomento non è presente in ObsoleteAttribute , il relativo valore predefinito in DeprecatedAttribute è DeprecationType. deprecate.If the error argument is not present in the ObsoleteAttribute, its default value in the DeprecatedAttribute is DeprecationType.Deprecate.

Importante

Non è consigliabile applicare direttamente l'attributo Windows. Foundation. Metadata. DeprecatedAttribute al codice gestito, perché questa esportazione viene eseguita automaticamente.Directly applying the Windows.Foundation.Metadata.DeprecatedAttribute attribute to managed code is not recommended, because this export occurs automatically.

Costruttori

ObsoleteAttribute()

Inizializza una nuova istanza della classe ObsoleteAttribute con le proprietà predefinite.Initializes a new instance of the ObsoleteAttribute class with default properties.

ObsoleteAttribute(String)

Inizializza una nuova istanza della classe ObsoleteAttribute con un messaggio alternativo specificato.Initializes a new instance of the ObsoleteAttribute class with a specified workaround message.

ObsoleteAttribute(String, Boolean)

Inizializza una nuova istanza della classe ObsoleteAttribute con un messaggio alternativo e un valore Boolean che indica se l'utilizzo dell'elemento obsoleto viene considerato un errore.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.

Proprietà

DiagnosticId

Ottiene o imposta l'ID che verrà usato dal compilatore per segnalare un uso dell'API.Gets or sets the ID that the compiler will use when reporting a use of the API.

IsError

Ottiene un valore che indica se il compilatore considererà l'utilizzo dell'elemento del programma obsoleto come errore.Gets a value that indicates whether the compiler will treat usage of the obsolete program element as an error.

Message

Ottiene il messaggio di soluzione alternativa.Gets the workaround message.

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Ereditato da Attribute)
UrlFormat

Ottiene o imposta l'URL per la documentazione corrispondente.Gets or sets the URL for corresponding documentation. L'API accetta una stringa di formato anziché un URL effettivo, creando un URL generico che include l'ID di diagnostica.The API accepts a format string instead of an actual URL, creating a generic URL that includes the diagnostic ID.

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.Returns a value that indicates whether this instance is equal to a specified object.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.Returns the hash code for this instance.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.Provides access to properties and methods exposed by an object.

(Ereditato da Attribute)

Si applica a

Vedi anche