Difference between revisions of "Passing UDTs to Classes"
From HashVB
m (Forced a line break before the MSDN URL) |
m (Wikified) |
||
| Line 1: | Line 1: | ||
This is actually extremely simple to do - all you need to do is declare the method (be it a property, function or sub) to which you are passing the UDT as Friend - like this: | This is actually extremely simple to do - all you need to do is declare the method (be it a property, function or sub) to which you are passing the UDT as Friend - like this: | ||
| − | + | '-- In some module | |
| − | + | Public Type myType | |
| − | + | x As Integer | |
| − | + | y As Integer | |
| − | + | End Type | |
| − | + | ||
| − | + | '-- In the class | |
| − | + | Friend Function myFunction(foo As myType) As Integer | |
| − | + | myFunction = foo.x + foo.y | |
| − | + | End Function | |
| − | + | ||
| − | + | '-- Passing to the function | |
| − | + | Dim foo As myType | |
| − | + | foo.x = 10: foo.y = 100 | |
| − | + | Debug.Print myClassInstance.myFunction(foo) '-- Prints 1000 to Immediate window | |
Simple :-) | Simple :-) | ||
| − | + | '''NOTE:''' This will only work when using the class from within the same project in VB. If compiled and used as a COM component, then any methods declared as 'Friend' will not appear. See MSDN on the topic of the Friend keyword:<br>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbenlr98/html/vakeyFriend.asp | |
Revision as of 13:18, 2 September 2005
This is actually extremely simple to do - all you need to do is declare the method (be it a property, function or sub) to which you are passing the UDT as Friend - like this:
'-- In some module
Public Type myType
x As Integer
y As Integer
End Type
'-- In the class
Friend Function myFunction(foo As myType) As Integer
myFunction = foo.x + foo.y
End Function
'-- Passing to the function
Dim foo As myType
foo.x = 10: foo.y = 100
Debug.Print myClassInstance.myFunction(foo) '-- Prints 1000 to Immediate window
Simple :-)
NOTE: This will only work when using the class from within the same project in VB. If compiled and used as a COM component, then any methods declared as 'Friend' will not appear. See MSDN on the topic of the Friend keyword:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbenlr98/html/vakeyFriend.asp