49 lines
667 B
C#
49 lines
667 B
C#
|
//
|
||
|
// 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;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|