From 2824b0cbb66e715490e1ef13250bd675d87b32d9 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Wed, 2 Jun 2010 20:53:17 +0000 Subject: rel-2.0.0 git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/tags/rel-2.0.0@12089 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- trunk/Examples/csharp/class/runme.cs | 66 ++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 trunk/Examples/csharp/class/runme.cs (limited to 'trunk/Examples/csharp/class/runme.cs') diff --git a/trunk/Examples/csharp/class/runme.cs b/trunk/Examples/csharp/class/runme.cs new file mode 100644 index 000000000..9088031d6 --- /dev/null +++ b/trunk/Examples/csharp/class/runme.cs @@ -0,0 +1,66 @@ +// This example illustrates how C++ classes can be used from C# using SWIG. +// The C# class gets mapped onto the C++ class and behaves as if it is a C# class. + +using System; + +public class runme +{ + static void Main() + { + // ----- Object creation ----- + + Console.WriteLine( "Creating some objects:" ); + + using (Square s = new Square(10)) + using (Circle c = new Circle(10)) + { + Console.WriteLine( " Created circle " + c ); + Console.WriteLine( " Created square " + s ); + + // ----- Access a static member ----- + + Console.WriteLine( "\nA total of " + Shape.nshapes + " shapes were created" ); + + // ----- Member data access ----- + + // Notice how we can do this using functions specific to + // the 'Circle' class. + c.x = 20; + c.y = 30; + + // Now use the same functions in the base class + Shape shape = s; + shape.x = -10; + shape.y = 5; + + Console.WriteLine( "\nHere is their current position:" ); + Console.WriteLine( " Circle = (" + c.x + " " + c.y + ")" ); + Console.WriteLine( " Square = (" + s.x + " " + s.y + ")" ); + + // ----- Call some methods ----- + + Console.WriteLine( "\nHere are some properties of the shapes:" ); + Shape[] shapes = {c,s}; + // for (int i=0; i