Pertanyaan Bagaimana cara menandai metode sebagai usang atau tidak berlaku lagi?


Bagaimana cara menandai metode sebagai usang atau usang menggunakan C #?


760


asal


Jawaban:


Cara terpendek adalah dengan menambahkan ObsoleteAttribute sebagai atribut ke metode. Pastikan untuk menyertakan penjelasan yang tepat:

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

Anda juga dapat menyebabkan kompilasi gagal, memperlakukan penggunaan metode sebagai kesalahan, bukan peringatan, jika metode dipanggil dari suatu tempat dalam kode seperti ini:

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

1278



Untuk menandai sebagai usang dengan peringatan:

[Obsolete]
private static void SomeMethod()

Anda mendapat peringatan saat menggunakannya:

Obsolete warning is shown

Dan dengan IntelliSense:

Obsolete warning with IntelliSense

Jika Anda ingin pesan:

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

Inilah tip alat IntelliSense:

IntelliSense shows the obsolete message

Terakhir, jika Anda ingin penggunaannya ditandai sebagai kesalahan:

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

Ketika menggunakan ini adalah apa yang Anda dapatkan:

Method usage is displayed as an error

Catatan: Gunakan pesan untuk memberi tahu orang-orang apa yang seharusnya mereka gunakan, bukan mengapa itu sudah usang.


70



Tambahkan anotasi ke metode menggunakan kata kunci Usang. Argumen pesan adalah opsional tetapi ide yang baik untuk mengomunikasikan mengapa item sekarang sudah usang dan / atau digunakan sebagai gantinya. Contoh:

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

52



Dengan ObsoleteAttribute Anda bisa menampilkan deprecated metode. Atribut usang memiliki tiga konstruktor:

  1. [Obsolete]: adalah konstruktor tanpa parameter dan merupakan default menggunakan atribut ini.
  2. [Obssolete(string message)]: dalam format ini Anda bisa mendapatkannya message mengapa metode ini tidak lagi digunakan.
  3. [Obsolete(string message, bool error)]: dalam format pesan ini sangat eksplisit tetapi error berarti, dalam waktu kompilasi, compiler harus menunjukkan kesalahan dan menyebabkan gagal dikompilasi atau tidak.

enter image description here


0