// // This tests two uses of the `This' expression on structs; being used as an argument // and being used implicitly. // struct T { int val; void one () { // // First test: Pass this as an argument. // two (this); } void two (T t) { this = t; } void three (ref T t) { two (t); } public override int GetHashCode () { // // Second test: do we correctly load this? // return val.GetHashCode(); } public static int Main() { T t = new T (); t.one (); t.GetHashCode (); return 0; } }