Есть ли аннотация в .NET, которая позволяет отказаться от методов или классов, чтобы их использование и их вызывающие элементы были идентифицированы компилятором (cf @Deprecated in Java)
Что такое эквивалент .NET @Deprecated в java?
Ответ 1
Атрибут [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
Ответ 2
[Устаревший] - см. здесь для документации по нему. Добавление этого метода или класса даст предупреждение компилятору, если кто-то попытается его использовать, с настраиваемым сообщением, которое вы передаете атрибуту при необходимости