So far, you have learned how to work with objects, how to create classes with methods, properties, and events, and how to use constructors. You have also learned how objects are destroyed within the .NET environment and how you can hook into that process to do any cleanup required by the objects.
Now you can move on to some more complex topics and variations on what has been discussed so far. First you'll look at some advanced variations of the methods you can implement in classes, including an exploration of the underlying technology behind events.
Methods often accept parameter values. The Person object's Walk method, for instance, accepts an Integer parameter (code file: Person.vb):
Public Sub Walk(ByVal distance As Integer) mTotalDistance += distance RaiseEvent Walked(distance) End Sub
Sometimes there is no need for the parameter. To address this, you can use the Optional keyword to make the parameter optional (code file: Person.vb):
Public Sub Walk(Optional ByVal distance As Integer = 0)
This does not provide you with a lot of flexibility, however, as the optional parameter or parameters must always be the last ones in the list. In addition, this merely enables you to pass or not pass the parameter. Suppose that you want to do something fancier, such as allow different data types or even entirely different lists of parameters.
Method overloading provides exactly those capabilities. By overloading methods, you can create several ...