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
|
struct Manam {
public int i;
}
interface IFoo {
public abstract string foo { get; set; }
public abstract Manam manam { get; set; }
}
class Bar : IFoo {
public string foo { get; set; }
public Manam manam { get; set; }
}
class Foo : Bar {
public string bar (string s) {
base.foo = s;
return base.foo;
}
public Manam baz (Manam m) {
base.manam = m;
return base.manam;
}
}
void main () {
var foo = new Foo ();
assert (foo is IFoo);
assert (foo.bar ("foo") == "foo");
Manam manam = { 42 };
assert (foo.baz (manam) == manam);
}
|