From: William F. <wsf...@us...> - 2006-07-04 20:54:18
|
Update of /cvsroot/swig/SWIG/Examples/test-suite/csharp In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv12737/Examples/test-suite/csharp Added Files: explicitcall_runme.cs Log Message: explicitcall tests --- NEW FILE: explicitcall_runme.cs --- using System; using explicitcallNamespace; public class explicitcall_runme { public static void Main() { GrandChild gc = new GrandChild(); if (gc.talkPerson() != "Person") throw new Exception("Explicit Person"); if (gc.talkChild() != "Child") throw new Exception("Explicit Child"); if (gc.talkBambino() != "GrandChild") throw new Exception("Explicit GrandChild"); if (gc.talk() != "GrandChild") throw new Exception("virtual GrandChild"); { Person p = null; p = new Mother(); if (p.talk() != "Person") throw new Exception("Mother"); p = new Daughter(); if (p.talk() != "Person:Child") throw new Exception("Daughter"); p = new GrandDaughter(); if (p.talk() != "Person:Child:GrandChild") throw new Exception("GrandDaughter"); } { TemplateString t = new TemplateString(); if (t.barTemplateString(0) != "Template") throw new Exception("Template"); TDerived td = new TDerived(); if (td.barTDerived() != "TDerived") throw new Exception("TDerived TDerived()"); if (td.barTemplateString() != "Template") throw new Exception("TDerived Template()"); if (td.barTDerived(0) != "TDerived") throw new Exception("TDerived TDerived(0)"); if (td.barTemplateString(0) != "Template") throw new Exception("TDerived Template(0)"); } } } // Test classic usage of the %explicitcall - using base class method from derived class class Mother : Person { public override string talk() { return talkPerson(); } } class Daughter : Child { public override string talk() { return talkPerson() + ":" + talkChild(); } } class GrandDaughter : GrandChild { public override string talk() { return talkPerson() + ":" + talkChild() + ":" + talkBambino(); } } |