Difference between revisions of "Passing UDTs to Classes"

From HashVB
Jump to: navigation, search
m (Forced a line break before the MSDN URL)
Line 19: Line 19:
 
Simple :-)
 
Simple :-)
  
<b>NOTE: </b>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
+
<b>NOTE: </b>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:07, 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