This is the fourth in a series of quick how-to articles on ReSharper.
Tip #4 – Convert Abstract Class to Interface
Use: This is used when the class(es) that will be inheriting from a base class also need to inherit from another base class. Derived types can inherit from only one base class but can implement multiple interfaces.
Before
1: public abstract class Book
   2:      {
3: public abstract string Title { get; set; }
   4:   
5: public abstract string Year { get; set; }
   6:   
7: public abstract string Author { get; set; }
   8:   
9: public abstract void Lend();
  10:   
11: public abstract void AddToInventory();
  12:      }
Right-click the class
After
1: public interface Book
   2:      {
3: string Title { get; set; }
4: string Year { get; set; }
5: string Author { get; set; }
6: void Lend();
7: void AddToInventory();
   8:      }
Note: Notice that this refactoring does not change the name of the type. At this point, there will be a squiggly line under the interface’s name, Book. Placing the cursor on Book and pressing <Alt+Enter> will prompt ReSharper to rename it to IBook.
Happy coding!