37 lines
731 B
C#
37 lines
731 B
C#
using System;
|
|
using System.Reflection;
|
|
|
|
class T {
|
|
int v;
|
|
int a;
|
|
public T () {
|
|
v = 1;
|
|
// note: a not modified
|
|
}
|
|
static int Main () {
|
|
Type t = typeof (T);
|
|
T obj = new T ();
|
|
MethodBase m1;
|
|
Console.WriteLine ("after ctor a is {0}", obj.a);
|
|
Console.WriteLine ("after ctor v is {0}", obj.v);
|
|
obj.a = 2;
|
|
obj.v = 5;
|
|
Console.WriteLine ("a is {0}", obj.a);
|
|
Console.WriteLine ("v is {0}", obj.v);
|
|
|
|
m1 = t.GetConstructor (Type.EmptyTypes);
|
|
m1.Invoke (obj, null);
|
|
Console.WriteLine ("after reinit a is {0}", obj.a);
|
|
Console.WriteLine ("after reinit v is {0}", obj.v);
|
|
/* value not preserved */
|
|
if (obj.a != 2)
|
|
return 1;
|
|
/* value not reinitialized */
|
|
if (obj.v != 1)
|
|
return 2;
|
|
|
|
return 0;
|
|
}
|
|
}
|
|
|