Что такое .NET эквивалент @Deprecated в Java? - PullRequest
12 голосов
/ 06 августа 2009

Есть ли в .NET аннотация, позволяющая исключать методы или классы, чтобы их использование и вызывающие их объекты определялись компилятором (см. @Deprecated в Java)

Ответы [ 2 ]

43 голосов
/ 06 августа 2009

Атрибут [Obsolete].

Вы можете добавить комментарий о том, что люди должны использовать, например:

[Obsolete("Use NewMethod() instead")]
public void OldMethod()
{
}

Если вы хотите сгенерировать ошибку компилятора, когда люди используют ваш метод:

[Obsolete("Use NewMethod() instead", true)]
public void OldMethod()
{
}

Это пример метода, но его можно использовать практически для любого целевого атрибута. См. здесь для полной документации.


Поскольку вопрос был немного отредактирован, я добавлю синтаксис VB.NET, чтобы охватить наиболее распространенные языки .NET:

<Obsolete("Use NewMethod() instead")> _
Public Sub OldMethod()
End Sub
9 голосов
/ 06 августа 2009

[устарел] - см. здесь для документации по нему. Добавление этого к методу или классу выдаст предупреждение компилятору, если кто-либо попытается его использовать, с пользовательским сообщением, которое вы дадите атрибуту при необходимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...