Frage Wie markiere ich eine Methode als veraltet oder veraltet?


Wie markiere ich eine Methode als veraltet oder veraltet mit C #?


760


Ursprung


Antworten:


Der kürzeste Weg ist das Hinzufügen der ObsoleteAttribute als Attribut für die Methode. Stellen Sie sicher, dass Sie eine entsprechende Erklärung hinzufügen:

[Obsolete("Method1 is deprecated, please use Method2 instead.")]
public void Method1()
{ … }

Sie können auch die Kompilierung fehlschlagen lassen, indem Sie die Verwendung der Methode als Fehler statt als Warnung behandeln, wenn die Methode von irgendwo im Code wie folgt aufgerufen wird:

[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]

1278



Um mit einer Warnung als veraltet zu markieren:

[Obsolete]
private static void SomeMethod()

Sie erhalten eine Warnung, wenn Sie es verwenden:

Obsolete warning is shown

Und mit IntelliSense:

Obsolete warning with IntelliSense

Wenn Sie eine Nachricht wünschen:

[Obsolete("My message")]
private static void SomeMethod()

Hier ist der IntelliSense-Tooltipp:

IntelliSense shows the obsolete message

Wenn Sie möchten, dass die Verwendung als Fehler gekennzeichnet wird:

[Obsolete("My message", true)]
private static void SomeMethod()

Wenn man es benutzt, bekommt man Folgendes:

Method usage is displayed as an error

Hinweis: Verwenden Sie die Nachricht, um den Benutzern mitzuteilen, was sie verwenden sollen, und nicht, warum sie veraltet ist.


70



Fügen Sie der Methode mit dem Schlüsselwort Obsolete eine Anmerkung hinzu. Das Nachrichtenargument ist optional, aber es ist eine gute Idee zu kommunizieren, warum das Objekt jetzt veraltet ist und / oder was stattdessen zu verwenden ist. Beispiel:

[System.Obsolete("use myMethodB instead")]
void myMethodA()

52



Mit ObsoleteAttribute du kannst das zeigen deprecated Methode. Das veraltete Attribut hat drei Konstruktoren:

  1. [Obsolete]: ist ein Konstruktor ohne Parameter und ist ein Standard, der dieses Attribut verwendet.
  2. [Obssolete(string message)]: in diesem Format können Sie bekommen message warum diese Methode veraltet ist.
  3. [Obsolete(string message, bool error)]: In diesem Format ist die Nachricht sehr explizit aber error bedeutet, dass der Compiler während der Kompilierungszeit Fehler anzeigen muss und nicht kompiliert werden kann.

enter image description here


0