'Visual Basic 2010 Redefinition en Method Overloading Static Typing en Dynamic Binding Namespace WithOverloading Class ClassA End Class Class ClassB : Inherits ClassA End Class ' Class Class1 Public Overridable Sub Test(ByVal classA As ClassA) Console.WriteLine("C1-CA") End Sub End Class Class Class2 : Inherits Class1 Public Overrides Sub Test(ByVal classA As ClassA) Console.WriteLine("C2-CA") End Sub Public Overloads Sub Test(ByVal classB As ClassB) Console.WriteLine("C2-CB") End Sub End Class ' Class Example Public Shared Sub Main() Dim objectB As ClassB = New ClassB Dim objectA As ClassA = objectB ' Dim object2 As Class2 = New Class2 Dim object1 As Class1 = object2 ' object1.Test(objectA) object1.Test(objectB) object2.Test(objectA) object2.Test(objectB) ' Console.ReadLine() End Sub End Class End Namespace Namespace WithoutOverloading Class ClassA End Class Class ClassB : Inherits ClassA End Class ' Class Class1 Public Overridable Sub TestClassA(ByVal classA As ClassA) Console.WriteLine("C1-CA") End Sub End Class Class Class2 : Inherits Class1 Public Overrides Sub TestClassA(ByVal classA As ClassA) Console.WriteLine("C2-CA") End Sub Public Sub TestClassB(ByVal classB As ClassB) Console.WriteLine("C2-CB") End Sub End Class ' Class Example2 Public Shared Sub Main() Dim objectB As ClassB = New ClassB Dim objectA As ClassA = objectB ' Dim object2 As Class2 = New Class2 Dim object1 As Class1 = object2 ' object1.TestClassA(objectA) object1.TestClassA(objectB) object2.TestClassA(objectA) object2.TestClassB(objectB) ' Console.ReadLine() End Sub End Class End Namespace Namespace OtherExample Class AClass Public Shared Function AFunction(ByVal AArgument As Short) As String AFunction = "Short" End Function Public Shared Function AFunction(ByVal AArgument As Integer) As String AFunction = "Integer" End Function Public Shared Function AFunction(ByVal AArgument As Double) As String AFunction = "Double" End Function End Class ' Class Example Public Shared Sub Main() Dim aByte As Byte Dim aShort As Short Dim aInteger As Integer Dim aSingle As Single Dim aDouble As Integer ' Console.WriteLine(AClass.AFunction(aByte)) Console.WriteLine(AClass.AFunction(aByte * aByte)) Console.WriteLine(AClass.AFunction(aByte ^ aByte)) Console.WriteLine(AClass.AFunction(aShort)) Console.WriteLine(AClass.AFunction(aShort * aShort)) Console.WriteLine(AClass.AFunction(aShort ^ aShort)) Console.WriteLine(AClass.AFunction(aInteger)) Console.WriteLine(AClass.AFunction(aInteger * aInteger)) Console.WriteLine(AClass.AFunction(aInteger ^ aInteger)) ' (1) Console.WriteLine(AClass.AFunction(aSingle)) Console.WriteLine(AClass.AFunction(aSingle * aSingle)) Console.WriteLine(AClass.AFunction(aDouble)) ' Console.ReadLine() End Sub End Class End Namespace 'Bezoek www.vbvoorbeelden.be voor meer Visual Basic voorbeelden. 'Copyright - De Wolf / vbvoorbeelden - 2003-2011 - Alle rechten voorbehouden.