[IronPython] Who understands ByRef?

Dino Viehland dinov at exchange.microsoft.com
Mon Oct 16 22:59:24 CEST 2006


It's probably easier to use the Reference type from the clr module then using reflection to make a  by-ref type.

import clr
import System
ref = clr.Reference[System.Int16](3)
someApi(ref)
print ref.Value #value gets updated in the reference object

This is the other way we support reference types in addition to the auto-coercion which isn't working for you due to the multiple overloads.

From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of jeff sacksteder
Sent: Monday, October 16, 2006 1:37 PM
To: Discussion of IronPython
Subject: [IronPython] Who understands ByRef?

Can anyone enlighten me?
On 10/14/06, jeff sacksteder <jsacksteder at gmail.com<mailto:jsacksteder at gmail.com>> wrote:

On 10/13/06, Martin Maly < Martin.Maly at microsoft.com<mailto:Martin.Maly at microsoft.com>> wrote:

Int16 is a type: System.Int16 and I am calling its constructor, passing "output" as the value:  System.Int16(output), just like in Python you can call:  int(3.5), this is very similar, except constructing .NET System.Int16 type.

An excellent description. However-

"TypeError: no overloads of AIn could match (int, Range, Int16)
  AIn(int, Range, Reference[Int16])
  AIn(int, Range, Reference[UInt16])"

I think I should be using System.Type.MakeByRefType, but I'm not quite getting it.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20061016/6c317e5c/attachment.html>


More information about the Ironpython-users mailing list