====== Method Overloading ====== Method Overloading is a concept that is not known in VO, but is implemented in the .NET runtime. It means that you can define multiple methods with the same name in a class. The only difference is that the signature (the parameter list) is different. This is true also for constructors - you can define more than one constructor in a class. An example: class MyClass method Foo( cString as string ) as string return cString method Foo( nInt as int ) as string return nInt:ToString() end class The compiler is able to understand which method to use depending on the parameter type, so this code will use both of the methods: local oClass as MyClass oClass := MyClass{} oClass:Foo( "Hi guys" ) oClass:Foo( 1234 ) Please note: a different return type is not a different signature, so this will not compile: method Foo( cString as string ) as string .... method Foo( cString as string ) as int Of course this applies also to longer parameter lists. Here a sample piece of code that uses overloaded constructors and chains them: class MyClass protect _cFullName as string constructor( cFullName as string ) _cFullName := cFullName return constructor( cSurname as string, cName as string ) super( cName + " " + cSurname ) return