Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Interfaces describe the characteristics of properties, methods, and events, but leave the implementation details up to structures or classes.
This walkthrough demonstrates how to declare and implement an interface.
Note
This walkthrough doesn't provide information about how to create a user interface.
Note
Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. The Visual Studio edition that you have and the settings that you use determine these elements. For more information, see Personalizing the IDE.
To define an interface
Open a new Visual Basic Windows Application project.
Add a new module to the project by clicking Add Module on the Project menu.
Name the new module
Module1.vband click Add. The code for the new module is displayed.Define an interface named
TestInterfacewithinModule1by typingInterface TestInterfacebetween theModuleandEnd Modulestatements, and then pressing ENTER. The Code Editor indents theInterfacekeyword and adds anEnd Interfacestatement to form a code block.Define a property, method, and event for the interface by placing the following code between the
InterfaceandEnd Interfacestatements:Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Implementation
You may notice that the syntax used to declare interface members is different from the syntax used to declare class members. This difference reflects the fact that interfaces cannot contain implementation code.
To implement the interface
Add a class named
ImplementationClassby adding the following statement toModule1, after theEnd Interfacestatement but before theEnd Modulestatement, and then pressing ENTER:Class ImplementationClassIf you are working within the integrated development environment, the Code Editor supplies a matching
End Classstatement when you press ENTER.Add the following
Implementsstatement toImplementationClass, which names the interface the class implements:Implements TestInterfaceWhen listed separately from other items at the top of a class or structure, the
Implementsstatement indicates that the class or structure implements an interface.If you are working within the integrated development environment, the Code Editor implements the class members required by
TestInterfacewhen you press ENTER, and you can skip the next step.If you are not working within the integrated development environment, you must implement all the members of the interface
MyInterface. Add the following code toImplementationClassto implementEvent1,Method1, andProp1:Event Event1() Implements TestInterface.Event1 Public Sub Method1(ByVal X As Integer) Implements TestInterface.Method1 End Sub Public Property Prop1() As Integer Implements TestInterface.Prop1 Get End Get Set(ByVal value As Integer) End Set End PropertyThe
Implementsstatement names the interface and interface member being implemented.Complete the definition of
Prop1by adding a private field to the class that stored the property value:' Holds the value of the property. Private pval As IntegerReturn the value of the
pvalfrom the property get accessor.Return pvalSet the value of
pvalin the property set accessor.pval = valueComplete the definition of
Method1by adding the following code.MsgBox("The X parameter for Method1 is " & X) RaiseEvent Event1()
To test the implementation of the interface
Right-click the startup form for your project in the Solution Explorer, and click View Code. The editor displays the class for your startup form. By default, the startup form is called
Form1.Add the following
testInstancefield to theForm1class:Dim WithEvents testInstance As TestInterfaceBy declaring
testInstanceasWithEvents, theForm1class can handle its events.Add the following event handler to the
Form1class to handle events raised bytestInstance:Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End SubAdd a subroutine named
Testto theForm1class to test the implementation class:Sub Test() ' Create an instance of the class. Dim T As New ImplementationClass ' Assign the class instance to the interface. ' Calls to the interface members are ' executed through the class instance. testInstance = T ' Set a property. testInstance.Prop1 = 9 ' Read the property. MsgBox("Prop1 was set to " & testInstance.Prop1) ' Test the method and raise an event. testInstance.Method1(5) End SubThe
Testprocedure creates an instance of the class that implementsMyInterface, assigns that instance to thetestInstancefield, sets a property, and runs a method through the interface.Add code to call the
Testprocedure from theForm1 Loadprocedure of your startup form:Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Test() ' Test the class. End SubRun the
Testprocedure by pressing F5. The message "Prop1 was set to 9" is displayed. After you click OK, the message "The X parameter for Method1 is 5" is displayed. Click OK, and the message "The event handler caught the event" is displayed.