1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
struct Manam {
int a;
}
class BaseFoo : Object {
public virtual Manam st { get; set; }
}
class Foo : Object {
public virtual Manam st { get; set; }
}
class Bar : Foo {
public override Manam st {
get { return base.st; }
set { base.st = value; }
}
}
class Baz : BaseFoo {
public override Manam st {
get { return base.st; }
set { base.st = value; }
}
}
void main () {
var bar = new Bar ();
bar.st = { 42 };
assert (bar.st.a == 42);
var baz = new Baz ();
baz.st = { 23 };
assert (baz.st.a == 23);
}
|