Làm cách nào để tôi đánh dấu một phương thức là lỗi thời hoặc không dùng nữa bằng C # ?
[EditorBrowsable(EditorBrowsableState.Never)]
( stackoverflow.com/a/9086345/661933 ). Phục vụ một mục đích hơi khác nhau.
Làm cách nào để tôi đánh dấu một phương thức là lỗi thời hoặc không dùng nữa bằng C # ?
[EditorBrowsable(EditorBrowsableState.Never)]
( stackoverflow.com/a/9086345/661933 ). Phục vụ một mục đích hơi khác nhau.
Câu trả lời:
Con đường ngắn nhất là bằng cách thêm vào ObsoleteAttribute
như một thuộc tính để phương pháp này . Đảm bảo bao gồm một lời giải thích phù hợp:
[Obsolete("Method1 is deprecated, please use Method2 instead.")]
public void Method1()
{ … }
Bạn cũng có thể khiến quá trình biên dịch thất bại, coi việc sử dụng phương thức là lỗi thay vì cảnh báo , nếu phương thức được gọi từ đâu đó trong mã như thế này:
[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]
Để đánh dấu là lỗi thời với một cảnh báo:
[Obsolete]
private static void SomeMethod()
Bạn nhận được một cảnh báo khi bạn sử dụng nó:
Và với IntelliSense:
Nếu bạn muốn một tin nhắn:
[Obsolete("My message")]
private static void SomeMethod()
Đây là mẹo công cụ IntelliSense:
Cuối cùng, nếu bạn muốn sử dụng bị gắn cờ là lỗi:
[Obsolete("My message", true)]
private static void SomeMethod()
Khi sử dụng, đây là những gì bạn nhận được:
Lưu ý: Sử dụng tin nhắn để nói với mọi người những gì họ nên sử dụng thay vì lý do tại sao nó đã lỗi thời.
Với ObsoleteAttribute
bạn có thể hiển thị các phương pháp không dùng nữa. Thuộc tính lỗi thời có ba hàm tạo:
[Obsolete]:
là một hàm tạo không có tham số và là mặc định sử dụng thuộc tính này.[Obsolete(string message)]:
trong định dạng này, bạn có thể nhận đượcmessage
lý do tại sao phương pháp này không được chấp nhận.[Obsolete(string message, bool error)]:
trong định dạng này, thông báo rất rõ ràng nhưngerror
có nghĩa là, trong thời gian biên dịch, trình biên dịch phải hiển thị lỗi và gây ra lỗi biên dịch hay không.