This shows you the differences between two versions of the page.
Last revision Both sides next revision | |||
vba:functions:ref [19.10.2015 17:06:35] yaslaw created |
vba:functions:ref [20.10.2015 08:56:44] yaslaw |
||
---|---|---|---|
Line 1: | Line 1: | ||
<const> | <const> | ||
version=1.1.0 | version=1.1.0 | ||
- | vdate= | + | vdate=19.10.2015 |
fname=udf_ref.bas | fname=udf_ref.bas | ||
ns=%NAMESPACE% | ns=%NAMESPACE% | ||
Line 14: | Line 14: | ||
===== Beschreibung ===== | ===== Beschreibung ===== | ||
+ | Die Funktion ref() verwedne ich häufig in grösseren Funktionen/Klassen, bei denen die Methoden flexibel sind. Zum Beispiel bei [[vba:functions:print_r:index]] und bei [[vba:classes:iterator:index]] | ||
===== Beispiele ===== | ===== Beispiele ===== | ||
+ | Das Beispiel so macht wenig Sinn. Es zeigt nur wie die Funktion angewendet wird | ||
+ | |||
+ | Eine Methoden in einer Klasse, die eine Variable entgegen nehmen | ||
+ | <code vb function.bas>Private myItem As Variant | ||
+ | |||
+ | 'Wie wissen hier nicht, ob ein Objekt oder ein anderer Datentyp daherkommt | ||
+ | Public Sub setItem(ByRef iItem As Variant) | ||
+ | ref myItem, iItem | ||
+ | End Sub | ||
+ | |||
+ | Public Property Get tName() As String | ||
+ | tName = TypeName(myItem) | ||
+ | End Property | ||
+ | </code> | ||
+ | |||
+ | Test | ||
+ | <code vb>Dim fso As New FileSystemObject | ||
+ | Dim cl As new MyClass | ||
+ | cl.setItem fso | ||
+ | debug.print cl.tName</code> | ||
===== Code ===== | ===== Code ===== | ||
<source '%%fpath%%/%%fname%%' vb> | <source '%%fpath%%/%%fname%%' vb> |