TECHNOLOGIES: VS .NET
Implement Interface Methods the Easy Way
It can be quick and automatic with Class View.
By Brian Noyes
A common task when creating classes in the .NET Framework is to implement an interface defined already in the Framework, one defined in your own code or in a third-party library. To implement an interface, you must implement all its methods with the proper name, parameters, and return type in your class. Coding this in by hand can be tedious and error-prone. Luckily, a nice little feature in the Class View can automate this process for you.
To see how to do this, start a new C# Class Library project in Visual Studio. The project will start with a class named Class1. Add the interface you want to implement to the class. I implemented the ISerializable interface, defined in the System.Runtime.Serialization namespace.
You class definition should now look like this:
public class Class1 :
Now go to Class View, expand the solution, namespace, and class in the tree. Under the Class1 class in the tree, you'll see a Bases and Interfaces node. If you expand this, you should see the ISerializable interface because the class now derives from it. Under ISerializable, you'll see its single method, GetObjectData (see Figure 1). All you need to do to implement the method is to right-click on it in Class View and select Add > Override from the context menu. The method is added to your class as an empty method with all the right parameters and return type. If the interface had multiple methods, you would simply repeat this process for each to implement each one in turn.
The bad news is that if you are a VB programmer, this feature is not available in Class View. The Class View context menus are different in VB, and unfortunately this item is missing there.
Figure 1. By right-clicking on an interface method for an interface you have derived your class from, you can implement the interface methods quickly by selecting Add > Override from the context menu.
Brian Noyes is an independent software consultant and president of Software Insight (http://www.softinsight.com). He's an MCSD with more than 11 years of programming, design and engineering experience. Brian specializes in architecture, design, and coding of cutting-edge software systems, and is a technical editor and frequent contributor to several publications. E-mail him at mailto:[email protected].