{
return value;
}
+
+ public int Method (int a, byte b)
+ {
+ return a * b;
+ }
public void MethodInOut (ref int refValue, out string outValue)
{
{
return i [0] * i.Length;
}
+
+ public static void ArglistMethod (__arglist)
+ {
+ }
+}
+
+class EventClass
+{
+ internal event Func<int> OutEvent;
+
+ public int CallEvent ()
+ {
+ return OutEvent ();
+ }
}
class Tester
// passed
}
}
+
+ event Func<int> e;
+ int field;
+
#pragma warning disable 169
Action<bool> f2 = Class.GenericVoid;
d = f2;
d (true);
+
+ Func<string, int> f3 = (s) => 3;
+ d = f3;
+ d ("go");
}
void InvokeMember ()
{
dynamic d = new Class ();
Assert ("vv", d.Method ("vv"), "#1");
+
+ byte b = 2;
+ Assert (6, d.Method (b: b++, a: b), "#1a");
var arg1 = 1;
var arg2 = "a";
d = 2;
Assert (2, Class.StaticMethod (d), "#2");
+ Class.StaticMethod (d);
+ }
+
+ void InvokeMember_Error ()
+ {
+ AssertError (() => {
+ dynamic d_arg = "a";
+ Class.ArglistMethod (d_arg);
+ }, "#1");
}
void InvokeConstructor ()
var r2 = new D2 (d);
}
+ void IsEvent ()
+ {
+ dynamic d = this;
+ d.e += new Func<int> (() => 3);
+ Assert (3, d.e (), "#1");
+
+ d.field += 5;
+ Assert (5, d.field, "#2");
+
+ int r = d.field += 7;
+ Assert (12, r, "#2a");
+ Assert (12, d.field, "#2b");
+
+ d = new EventClass ();
+ d.OutEvent += new Func<int> (() => 100);
+ Assert (100, d.CallEvent (), "#3");
+ }
+
void MemberGetTest ()
{
dynamic d = new Class ();
d = new int[4];
Assert (4, d.Length, "#3");
-
- // d.Event += delegate () { }; CS0019
}
void MemberGetError_Null ()
d.Prop++;
Assert (2, d.Prop, "#1d");
- //FIXME:
- //d.Prop += 5;
- //Assert (7, d.Prop, "#1e");
+ d.Prop += 5;
+ Assert (7, d.Prop, "#1e");
d.StringStatic = "no";
Assert ("no", d.StringStatic, "#2");