User Tools

Site Tools


attached_methods

This is an old revision of the document!


Attached methods

In Visual Objects, you could define methods to classes where you had no sources and that are defined in other libraries. In the .NET Framework this is not possible, but since this is a very powerful language feature, you can use the Attached methods to attach methods to another class where you have no sources. This works even with system classes and base datatypes (Everything is an object).

Please look at this code:

local cString as string
local cResult as string

cString := "Hello world!"
cResult := cString:Left( 5 )

But the System.String class has no Left() method!

The solution is this one:

static class StringExtensions
static method Left( self cString as string, nLen as int ) as string
local cReturn as string
	
if nLen >= cString:Length
  cReturn := cString
else
  cReturn := cString:Substring( 0, nLen )
endif
		
return cReturn

The secret lies in the first parameter: 'self cString as string If you have defined this attached method in an assembly with a different namespace, this namespace of course must be included by a using'' statement

attached_methods.1517160908.txt.gz · Last modified: 2018/01/28 17:35 by wolfgangriedmann