40 lines
392 B
C#
Raw Normal View History

interface IA
{
}
interface IF : IA
{
int Prop { set; }
}
struct S : IF
{
int prop;
public S (int a)
{
this.prop = 5;
}
public int Prop {
set {
prop = value;
}
}
void M<T> (T ia) where T : struct, IA
{
((IF)ia).Prop = 3;
}
public static void Main ()
{
S s = new S ();
object o = s;
((IF)((S)o)).Prop = 3;
IA ia = new S ();
((IF)ia).Prop = 3;
}
}