diff options
Diffstat (limited to 'Examples/csharp/variables/runme.cs')
-rw-r--r-- | Examples/csharp/variables/runme.cs | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/Examples/csharp/variables/runme.cs b/Examples/csharp/variables/runme.cs new file mode 100644 index 0000000..3d19b6a --- /dev/null +++ b/Examples/csharp/variables/runme.cs @@ -0,0 +1,82 @@ +// This example illustrates global variable access from C#. + +using System; +using System.Reflection; + +public class runme { + + public static void Main() { + + // Try to set the values of some global variables + + example.ivar = 42; + example.svar = -31000; + example.lvar = 65537; + example.uivar = 123456; + example.usvar = 61000; + example.ulvar = 654321; + example.scvar = -13; + example.ucvar = 251; + example.cvar = 'S'; + example.fvar = (float)3.14159; + example.dvar = 2.1828; + example.strvar = "Hello World"; + example.iptrvar= example.new_int(37); + example.ptptr = example.new_Point(37,42); + example.name = "Bill"; + + // Now print out the values of the variables + + Console.WriteLine( "Variables (values printed from C#)" ); + + Console.WriteLine( "ivar =" + example.ivar ); + Console.WriteLine( "svar =" + example.svar ); + Console.WriteLine( "lvar =" + example.lvar ); + Console.WriteLine( "uivar =" + example.uivar ); + Console.WriteLine( "usvar =" + example.usvar ); + Console.WriteLine( "ulvar =" + example.ulvar ); + Console.WriteLine( "scvar =" + example.scvar ); + Console.WriteLine( "ucvar =" + example.ucvar ); + Console.WriteLine( "fvar =" + example.fvar ); + Console.WriteLine( "dvar =" + example.dvar ); + Console.WriteLine( "cvar =" + example.cvar ); + Console.WriteLine( "strvar =" + example.strvar ); + Console.WriteLine( "cstrvar =" + example.cstrvar ); + Console.WriteLine( "iptrvar =" + example.iptrvar ); + Console.WriteLine( "name =" + example.name ); + Console.WriteLine( "ptptr =" + example.ptptr + example.Point_print(example.ptptr) ); + Console.WriteLine( "pt =" + example.pt + example.Point_print(example.pt) ); + + Console.WriteLine( "\nVariables (values printed from C)" ); + + example.print_vars(); + + Console.WriteLine( "\nNow I'm going to try and modify some read only variables" ); + Console.WriteLine( "\nChecking that the read only variables are readonly..." ); + + example ex = new example(); + Type t = ex.GetType(); + + Console.WriteLine( " 'path'" ); + PropertyInfo pi = t.GetProperty("path"); + if (pi.CanWrite) + Console.WriteLine("Oh dear this variable is not read only\n"); + else + Console.WriteLine("Good."); + + Console.WriteLine( " 'status'" ); + pi = t.GetProperty("status"); + if (pi.CanWrite) + Console.WriteLine("Oh dear this variable is not read only"); + else + Console.WriteLine("Good."); + + Console.WriteLine( "\nI'm going to try and update a structure variable.\n" ); + + example.pt = example.ptptr; + + Console.WriteLine( "The new value is" ); + example.pt_print(); + Console.WriteLine( "You should see the value" + example.Point_print(example.ptptr) ); + } +} |