<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Batang;
        panose-1:2 3 6 0 0 1 1 1 1 1;}
@font-face
        {font-family:"\@Batang";
        panose-1:2 3 6 0 0 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 77.95pt 1.0in 77.95pt;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'>A question about subclassing, virtual methods, C#/IP
interop, etc in IronPython-0.9.4. I have a library of two classes Helper
& Master (greatly simplified from my actual situation, but analagous):<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>using
System;<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>namespace
TestLib<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public class Helper<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
int _id;<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public Helper(int id)<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
_id = id;<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public void DoSomething()<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
Console.WriteLine("Helper”);<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public class Master<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
protected virtual Helper CreateHelper(int id)<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
return new Helper(id);<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public void DoSomething()<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
Helper helper = CreateHelper(0);<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
helper.DoSomething();<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>}<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'>Master has a factory-style method that creates a helper, and
then invokes a method on it. I want to insert some throw-away behavior,
by subclassing both Master and Helper, so that FooMaster creates a FooHelper,
and then invokes the FooHelper version of DoSomething.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>from
TestLib import *<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>class
FooHelper(Helper):<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
def __init__(self, id):<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
self._id = id<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
def DoSomething(self):<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
print "FooHelper"<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>class
FooMaster(Master):<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
def CreateHelper(self, id):<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
return FooHelper(id)<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'># ===
Main ==================<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>fooMaster
= FooMaster()<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>fooMaster.DoSomething()<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'>I expect this to print out “FooHelper”. Instead
it prints out “Helper”.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'>Note that if I were to define the superclasses Helper/Master
in Python instead of C#, everything works like a charm, and it prints out “FooHelper”:<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>class
Helper:<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
_id = 0<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
def __init__(self, id):<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
self._id = id;<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
def DoSomething(self):<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
print "Helper"<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>class
Master:<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
def CreateHelper(self, id):<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
return Helper(id)<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
def DoSomething(self):<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
self.CreateHelper(10).DoSomething()<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'>This leads me to believe it is impossible for a C# object to
call a Python method that overrides a virtual method. However, also note
that if I define the Helper class to be abstract in C#, it also works fine and
I see “FooHelper”.<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>using
System;<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>using
System.Text;<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>namespace
TestLib<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public abstract class Helper<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
int _id;<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public Helper(int id)<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
_id = id;<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public abstract void DoSomething();<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public class Master<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
protected virtual Helper CreateHelper(int id)<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
return null;<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public void DoSomething()<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
Helper helper = CreateHelper(0);<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
helper.DoSomething();<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>}<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'>Furthermore, when I simplify things even further, it also
works the way I’d expect:<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>public
class Helper<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public Helper(int id) { }<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public virtual void DoSomething() { Console.WriteLine("Helper"); }<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>public
class Master<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>{<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
public Master(Helper helper) { helper.DoSomething(); }<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>}<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'><o:p> </o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>class
FooHelper(Helper):<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
def __init__(self, id): pass<o:p></o:p></span></font></p>
<p class=MsoPlainText style='margin-left:.5in'><font size=1 color="#3366ff"
face=Arial><span style='font-size:9.0pt;font-family:Arial;color:#3366FF'>
def DoSomething(self): print "FooHelper"<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'>Can anybody tell me what’s going on? Is this a
bug in IronPython or am I doing something wrong?<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'>Many thanks,<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=1 face=Arial><span style='font-size:9.0pt;
font-family:Arial'>Michael<o:p></o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>
<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p> </o:p></span></font></p>
</div>
</body>
</html>