65.9K
CodeProject is changing. Read more.
Home

Use “Obsolete” attributes to indicate Obsolete Methods

Sep 3, 2010

CPOL

2 min read

viewsIcon

23331

In this post, I have explained how you can mark methods as obsolete using obsolete attributes which are not in use or may be removed in upcoming builds.

In this post, I have explained how you can use Obsolete attributes to mark some methods which are no longer in use or may be removed in future releases of the class. During the development cycle, we may need to change the name or declaration of certain methods which may be used by some other developers. In this case, if you changed the name or declaration of that method, the application may crash in different points of times as it’s being used by other developers in the application. In this case, you can use System.ObsoleteAttributes class to generate compiler warning and indicate the method as Obsolete.

1

Let’s discuss this with an example. Suppose we are having a Student class which has GetStudentInfo() method which returns the student's information.

2

Now this class is being used by many other developers to get the student information.

3

If you want to change the name or declaration of GetStudentInfo() methods, it may cause the application crash or application build error as this method is being used by many developers.

4

To overcome this problem, and maintain the compatibility you can use “Obsolete” attributes to the old methods and define a new method and show a proper message to other developers.

5

These changes won’t be cause for  any code break or application error. Other developers who are already using the GetStudentInfo() method will get an Compiler warning “Use GetStudentDetails instead of GetStudentInfo" .

6

And any new developer who is going to consume the GetStudentInfo() method will get a tool tip message that “Use GetStudentDetails Instead of GetStudentInfo".

7

Summary

In this post, I have explained how you can mark methods as obsolete using obsolete attributes which are not in use or may be removed in upcoming builds.

Hope this post will help you!

Filed under: ASP.NET, C#, General, Tips and Tricks, Visual Studio