mirror of https://github.com/swig/swig
83 lines
2.8 KiB
C#
83 lines
2.8 KiB
C#
// 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) );
|
|
}
|
|
}
|