> Hi! I'm having trouble understanding some weird behavior when trying to use 
> an object defined in a third-party assembly.
> When I view the assembly in Object Explorer, I see that the CosEvent class 
> defines two constructors.

> One parameterless:
>  
> public CosEvent()
>     Member of Cos.Core.EMS.CosEvent


> And one parameterized:

> public CosEvent(ref string prmPlatform, ref string prmProcessname, ref int 
> prmProcessInstance, ref char prmEventType,
> ref int prmEventNumber, ref int prmErrorNumber, ref string 
> prmEventDescription)
>     Member of Cos.Core.EMS.CosEvent


> So far, so good. But when I run the following test script:

> import clr
> import System

> clr.AddReferenceToFileAndPath(r'c:\dll\CosEventManagement.dll')

> import Cos.Core.EMS

> print 50 * '-'
> print '-- parameterless constructor'
> print 50 * '-'
> e = Cos.Core.EMS.CosEvent()
> print type(e)
> print e

> print 50 * '-'
> print '-- parameterized constructor with keyword params'
> print 50 * '-'
> e = Cos.Core.EMS.CosEvent(Platform='om5681d2',ProcessName='test
> process',ProcessInstance=1,EventType='S',EventNumber=1000,ErrorNumber=0,EventDescription='just
>  another lousy test')
> print type(e)
> print e

> print 50 * '-'
> print '-- parameterized constructor with positional params'
> print 50 * '-'
> e = Cos.Core.EMS.CosEvent('om5681d2','test process',1,'S',1000,0,'just 
> another lousy test')
> print type(e)
> print e


> This is its output: 

> --------------------------------------------------
> -- parameterless constructor
> --------------------------------------------------
> <type 'CosEvent'>
> <Cos.Core.EMS.CosEvent object at 0x000000000000002B [Cos.Core.EMS.CosEvent]>
> --------------------------------------------------
> -- parameterized constructor with keyword params
> --------------------------------------------------
> <type 'CosEvent'>
> <Cos.Core.EMS.CosEvent object at 0x000000000000002C [Cos.Core.EMS.CosEvent]>
> --------------------------------------------------
> -- parameterized constructor with positional params
> --------------------------------------------------
> <type 'tuple'>
> (<Cos.Core.EMS.CosEvent object at 0x000000000000002D 
> [Cos.Core.EMS.CosEvent]>, '
> om5681d2', 'test process', 1, <System.Char object at 0x000000000000002E [S]>, 
> 10
> 00, 0, 'just another lousy test')


> When I call the parameterless constructor, I get back a CosEvent object.
> Likewise when I call the parameterized constructor using keyword parameters.
> But when I call the parameterized constructor using positional parameters, I 
> get a tuple containing the CosEvent object and its parameters.
> And it's that third result that I'm not understanding...

> Am I missing (or maybe just misunderstanding) something? Why do I get a tuple 
> instead of just the 'naked' CosEvent
> object? And why does it only happen when I use positional parameters?

> Any help you can give is greatly appreciated.

> Thanks,
> Don 
> _______________________________________________
> Ironpython-users mailing list
> Ironpython-users@python.org
> https://mail.python.org/mailman/listinfo/ironpython-users

RTFM 
http://ironpython.net/documentation/dotnet/dotnet.html#ref-and-out-parameters .

-- 
Best regards,
 Ivan                            mailto:v...@mail.mipt.ru

_______________________________________________
Ironpython-users mailing list
Ironpython-users@python.org
https://mail.python.org/mailman/listinfo/ironpython-users

Reply via email to