Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Interface
1. Interface
•Interface is similar to abstract class. They used as template and can not instantiate the object. The
interface can be inherited.
•Interface provide another way to implement polymorphism.
•Through interfaces, we specify methods that a component must implement without actually
specifying how the method is implemented. We just specify the methods in an interface and leave it to
the class to implement those methods .
• VB.net does not support the multiple inheritance directly but using interface we can achieve multiple
inheritance.
•Use the Interface keyword to create an interface and implements keyword to implement the
interface.
•Once you create an interface you need to implement all the methods specified in that interface.
• It is a collection of prototypes. It contains methods, properties, events. They can not contain static
functions or constructors.
•Syntax:
Public Interface Name_of_interface
function declarations
End Interface
2. Example:
Public Interface vehicle
Sub driveBike()
Sub driveCar()
End Interface
Public Class Pune : Implements vehicle
Public Sub driveBike() Implements vehicle.driveBike
Console.Writeline(“I m driving Bike in Pune”)
End Sub
Public Sub driveCar() Implements vehicle.driveCar
Console.Writeline(“I m driving Car in Pune”)
End Sub
End Class
Public Class Mumbai: Implements vehicle
Public Sub driveBike() Implements vehicle.driveBike
Console.Writeline(“I m driving Bike in Mumbai”)
End Sub
Public Sub driveCar() Implements vehicle.driveCar
Console.Writeline(“I m driving Car in Mumbai”)
End Sub
End Class
Sub Main()
Dim M As New Mumbai()
Dim P As New Pune()
P.driveBike()
P.driveCar()
P.driveBike()
P.driveCar()
End Sub
3. Delegates
A function pointer is a special type of variable that is used to access a function
using its address. To support function pointers, the .NET Framework provides
the concept of delegates. A delegate is not a real function. It provides a syntax
for a function that it would be associated with.
Delegates are pointers that are used to store and transfer information like the
memory address, event handled by functions and subroutines. Delegates are
type safe, since they check for the signatures of functions and subroutines
only if same, they transfer information. A delegate is declared using the
keyword Delegate to a function or procedure name.
4. Creating a Delegate:
[modifier] Delegate Sub/Function Name (parameter(s)) As ReturnType
The modifier factor can be Public, Private, or Friend. This is followed by either the Delegate
Sub or the Delegate Function expression.
A delegate must have a name: The Name factor of this formula. The name follows the rules we
have been observing for valid names of the Visual Basic language.
Because a delegate is some type of a template for a procedure, you must use parentheses. If this
procedure will not take any argument, you can leave the parentheses empty.
If the delegate will be associated with a sub-procedure, there is no return type. Here is an
example:
Module Exercise
Delegate Sub Messenger()
End Module
5. Module Module1
Public Delegates Sub Firstdelegate (ByVal x As integer, ByVal y As Integer)
Public Sub Add(ByVal x As integer, ByVal y As Integer)
Console.Writeline(“Addition is”, x+y)
End Sub
Public Sub Mul(ByVal x As integer, ByVal y As Integer)
Console.Writeline(“Multiplication is”, x*y)
End Sub
Sub Main()
Dim Del, Del1 As Firstdelegate ‘object of delegate
Del=AddressOf Add ‘Assign Address of function
Del1=AddressOf Mul
Del.Invoke(10,20) ‘ used to invoke or call the function
Del1.Invoke(5,3)
End Sub
6. Delegates are of two types:
Single-cast delegates:
* If a delegate invokes a single method, then it is called as a Single cast delegate.
* Single-cast Delegates refer to a single method with matching signature.
They are derived from the System.Delegate class
Multi-cast delegates:
*They are nothing but a single delegate that can invoke multiple methods of matching
signature.
*Derives from System.MulticastDelegate class which is a subclass of System.Delegate
*In this, we create a single delegate that in turn invokes multiple encapsulated methods.
We can use Multi-cast Delegates when multiple calls to different methods are required.