Auf Englisch lesen

Freigeben über


ObsoleteAttribute Klasse

Definition

Markiert die Programmelemente, die nicht mehr verwendet werden. Diese Klasse kann nicht vererbt werden.

C#
[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
C#
[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
C#
[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
Vererbung
ObsoleteAttribute
Attribute

Beispiele

Im folgenden Beispiel wird eine Klasse definiert, die eine -Eigenschaft und eine -Methode enthält, die mit dem ObsoleteAttribute -Attribut gekennzeichnet sind. Der Zugriff auf den Wert der OldProperty Eigenschaft im Code generiert eine Compilerwarnung, aber der Aufruf der CallOldMethod -Methode generiert einen Compilerfehler. Das Beispiel zeigt auch die Ausgabe, die sich beim Kompilieren des Quellcodes ergibt.

C#
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.'

Hinweise

ObsoleteAttribute gilt für alle Programmelemente mit Ausnahme von Assemblys, Modulen, Parametern und Rückgabewerten. Wenn Sie ein Element als veraltet markieren, wird benutzern mitgeteilt, dass das Element in einer zukünftigen Version des Produkts entfernt werden kann.

Die der Message -Eigenschaft zugewiesene Zeichenfolge wird vom Compiler ausgegeben, wenn das Attributziel im Code verwendet wird. Im Idealfall sollte die Zeichenfolge eine Problemumgehung oder programmgesteuerte Alternative bereitstellen.

Verwenden Sie die IsError -Eigenschaft, um dem Compiler anzugeben, ob die Verwendung des ObsoleteAttribute Attributs dazu führen soll, dass ein Fehler ausgegeben wird (IsError ist true) oder eine Warnung (IsError ist false).

Weitere Informationen zur Verwendung von Attributen finden Sie unter Attribute.

Konstruktoren

ObsoleteAttribute()

Initialisiert eine neue Instanz der ObsoleteAttribute-Klasse mit Standardeigenschaften.

ObsoleteAttribute(String)

Initialisiert eine neue Instanz der ObsoleteAttribute-Klasse mit einer angegebenen Meldung zur Problemumgehung.

ObsoleteAttribute(String, Boolean)

Initialisiert eine neue Instanz der ObsoleteAttribute-Klasse mit einer Meldung über Umgehungsmöglichkeiten und einem booleschen Wert, der angibt, ob die Verwendung des veralteten Elements als Fehler zu behandeln ist.

Eigenschaften

DiagnosticId

Ruft die ID ab, die der Compiler verwendet, wenn eine Verwendung der API gemeldet wird, oder legt sie fest.

IsError

Ruft einen Wert ab, der angibt, ob der Compiler die Verwendung des veralteten Programmelements als Fehler behandelt.

Message

Ruft die Problemumgehungsmeldung ab.

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)
UrlFormat

Ruft die URL für die entsprechende Dokumentation ab oder legt sie fest. Die API akzeptiert eine Formatzeichenfolge anstelle einer tatsächlichen URL und erstellt eine generische URL, die die Diagnose-ID enthält.

Methoden

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Weitere Informationen