ObsoleteAttribute Classe

Definizione

Contrassegna gli elementi del programma che non vengono più utilizzati. La classe non può essere ereditata.

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
Ereditarietà
ObsoleteAttribute
Attributi

Esempio

Nell'esempio seguente viene definita una classe contenente una proprietà e un metodo contrassegnati con ObsoleteAttribute l'attributo . L'accesso al valore della proprietà nel codice genera un avviso del compilatore, ma la OldProperty chiamata al metodo genera un errore del CallOldMethod compilatore. L'esempio mostra anche l'output restituito quando si tenta di compilare il codice sorgente.

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. Contrassegnando un elemento come obsoleto si informa gli utenti che l'elemento potrebbe essere rimosso in una versione futura del prodotto.

La stringa assegnata alla proprietà viene generata dal compilatore quando la destinazione Message dell'attributo viene usata nel codice. Idealmente, la stringa deve fornire una soluzione alternativa a livello di codice o alternativa a livello di codice.

Utilizzare la proprietà per indicare al compilatore se l'uso dell'attributo deve generare un errore ( è ) o IsError un avviso ( è ObsoleteAttribute IsError true IsError false ).

Per altre informazioni sull'uso degli attributi, vedere Attributi.

Windows 8.x App dello Store

Quando si crea una Windows metadati (file con estensione winmd), l'oggetto viene esportato sia come attributo che come ObsoleteAttribute ObsoleteAttribute Windows. Attributo Foundation.Metadata.DeprecatedAttribute se nel codice sorgente ObsoleteAttribute è presente solo l'elemento . ObsoleteAttributeL'oggetto viene trasformato in come DeprecatedAttribute segue:

  • Se gli message argomenti e sono entrambi error presenti, viene assegnato message all'argomento DeprecatedAttribute message . Un valore di errore di esegue il mapping a true DeprecationType.Removee un valore di esegue il mapping a error false DeprecationType.Deprecate.

  • Se l'argomento non viene specificato in , il valore predefinito in è message ObsoleteAttribute DeprecatedAttribute "element_name is deprecato", dove element_name è il nome dell'elemento del programma di destinazione a cui viene applicato l'attributo.

  • Se error l'argomento non è presente in ObsoleteAttribute , il valore predefinito in è DeprecatedAttribute DeprecationType.Deprecate .

Importante

Applicazione diretta del Windows. L'attributo Foundation.Metadata.DeprecatedAttribute per il codice gestito non è consigliato, perché questa esportazione viene eseguita automaticamente.

Costruttori

ObsoleteAttribute()

Inizializza una nuova istanza della classe ObsoleteAttribute con le proprietà predefinite.

ObsoleteAttribute(String)

Inizializza una nuova istanza della classe ObsoleteAttribute con un messaggio alternativo specificato.

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.

Proprietà

DiagnosticId

Ottiene o imposta l'ID che verrà usato dal compilatore per segnalare un uso dell'API.

IsError

Ottiene un valore che indica se il compilatore considera l'utilizzo dell'elemento di programma obsoleto come errore.

Message

Ottiene il messaggio della soluzione alternativa.

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)
UrlFormat

Ottiene o imposta l'URL per la documentazione corrispondente. L'API accetta una stringa di formato anziché un URL effettivo, creando un URL generico che include l'ID di diagnostica.

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(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.

(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.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(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.

(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.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 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.

(Ereditato da Attribute)

Si applica a

Vedi anche