Запрет использования устаревших методов в C# — атрибут Obsolete

Когда работаешь над проектом продолжительное время, порой возникает необходимость запрета использования одних методов/классов и замене их другими. Данный переход должен быть максимально безболезненным для разработчиков и всё необходимое для этого в C# уже есть…

Напишем небольшой класс, содержащий 2 метода OldMethod и NewMethod.

public class TestObsolete
{
    public void OldMethod()
    {
        Console.WriteLine("Это старый метод, который не рекомендуется использовать");
    }
    public void NewMethod()
    {
        Console.WriteLine("Это новый метод, надо использовать его");
    }
}

При использовании любого из методов в классе, мы не получим никаких предупреждений, что мы не должны использовать метод OldMethod. Что нужно делать в данном случае? Наиболее правильное решение, использовать атрибут Obsolete:

[Obsolete]
public void OldMethod()
{
    Console.WriteLine("Это старый метод, который не рекомендуется использовать");
}
public void NewMethod()
{
    Console.WriteLine("Это новый метод, надо использовать его");
}

Теперь при использовании данного метода, мы увидим предупреждение.

Также мы увидим предупреждение в окне «Error List»:

Можно добавить свой комментарий, объясняющий пользователю, почему не стоит использовать данный метод:
[Obsolete("Данный метод перестанет работать в следующей версии приложения")]

Теперь в окре «Error List» мы увидим более детальное предупреждение:

Если же нужно однозначно запретить использовать данный метод, то достаточно добавить в атрибут true.

[Obsolete("Нельзя использовать данный метод!",true)]

Теперь, при использовании данного метода мы получим ошибку:

Надеюсь эта небольшая статья поможет кому-то писать более качественный код…

Приятного программирования.

Добавить комментарий