| // This example illustrates global variable access from C#. |
| module runme; |
| |
| import tango.io.Stdout; |
| static import example; |
| |
| 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 = 3.14159f; |
| 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 |
| Stdout.formatln( "Variables (printed from D):" ); |
| Stdout.formatln( "ivar = {}", example.ivar ); |
| Stdout.formatln( "svar = {}", example.svar ); |
| Stdout.formatln( "lvar = {}", example.lvar ); |
| Stdout.formatln( "uivar = {}", example.uivar ); |
| Stdout.formatln( "usvar = {}", example.usvar ); |
| Stdout.formatln( "ulvar = {}", example.ulvar ); |
| Stdout.formatln( "scvar = {}", example.scvar ); |
| Stdout.formatln( "ucvar = {}", example.ucvar ); |
| Stdout.formatln( "fvar = {}", example.fvar ); |
| Stdout.formatln( "dvar = {}", example.dvar ); |
| Stdout.formatln( "cvar = {}", example.cvar ); |
| Stdout.formatln( "strvar = {}", example.strvar ); |
| Stdout.formatln( "cstrvar = {}", example.cstrvar ); |
| Stdout.formatln( "iptrvar = {}", example.iptrvar ); |
| Stdout.formatln( "name = {}", example.name ); |
| Stdout.formatln( "ptptr = {} {}", example.ptptr, example.Point_print(example.ptptr) ); |
| Stdout.formatln( "pt = {} {}", example.pt, example.Point_print(example.pt) ); |
| Stdout.formatln( "status = {}", example.status ); |
| |
| Stdout.formatln( "\nVariables (printed from the C library):" ); |
| example.print_vars(); |
| |
| Stdout.formatln( "\nNow I'm going to try and modify some read only variables:" ); |
| Stdout.formatln( "Checking that the read only variables are readonly..." ); |
| |
| Stdout( " 'path'..." ); |
| static if ( is( typeof( example.path = "a" ) ) ) |
| Stdout.formatln("Oh dear, this variable is not read only!"); |
| else |
| Stdout.formatln("Good."); |
| |
| Stdout( " 'status'..." ); |
| static if ( is( typeof( example.status = 2 ) ) ) |
| Stdout.formatln("Oh dear, this variable is not read only!"); |
| else |
| Stdout.formatln("Good."); |
| |
| Stdout.formatln( "\nI'm going to try and update a structure variable:" ); |
| |
| example.pt = example.ptptr; |
| |
| Stdout( "The new value is " ).flush; |
| example.pt_print(); |
| Stdout.formatln( "You should see the value {}", example.Point_print(example.ptptr) ); |
| } |