66 lines
981 B
C#
66 lines
981 B
C#
|
// Compiler options: -r:test-anon-94-lib.dll
|
||
|
|
||
|
using System;
|
||
|
|
||
|
class Program
|
||
|
{
|
||
|
public class BaseClass
|
||
|
{
|
||
|
public int i;
|
||
|
public virtual void Print () { Console.WriteLine ("BaseClass.Print"); i = 90; }
|
||
|
public virtual void TestOut (out int arg) { arg = 4; }
|
||
|
}
|
||
|
|
||
|
public class Derived : BaseClass
|
||
|
{
|
||
|
public override void Print ()
|
||
|
{
|
||
|
Action a = () => base.Print ();
|
||
|
a ();
|
||
|
}
|
||
|
|
||
|
public override void TestOut (out int arg)
|
||
|
{
|
||
|
int p = 9;
|
||
|
Action a = () => {
|
||
|
base.TestOut (out p);
|
||
|
Console.WriteLine (p);
|
||
|
};
|
||
|
|
||
|
a ();
|
||
|
arg = p;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public class DerivedLibrary : BaseClassLibrary
|
||
|
{
|
||
|
public override void Print (int arg)
|
||
|
{
|
||
|
Action a = () => base.Print (30);
|
||
|
a ();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static int Main ()
|
||
|
{
|
||
|
var d = new Derived ();
|
||
|
d.Print ();
|
||
|
|
||
|
if (d.i != 90)
|
||
|
return 1;
|
||
|
|
||
|
int arg;
|
||
|
d.TestOut (out arg);
|
||
|
if (arg != 4)
|
||
|
return 2;
|
||
|
|
||
|
var d2 = new DerivedLibrary ();
|
||
|
d2.Print (0);
|
||
|
|
||
|
if (d2.i != 30)
|
||
|
return 3;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
}
|