| // 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) ); | |
| } | |
| } |