2014-08-13 10:39:27 +01:00
|
|
|
using System;
|
|
|
|
|
|
|
|
public class C
|
|
|
|
{
|
|
|
|
public D D { get; private set; }
|
|
|
|
public string Value { get; private set; }
|
2014-09-04 09:07:35 +01:00
|
|
|
public Foo Foo { get; set; }
|
2014-08-13 10:39:27 +01:00
|
|
|
|
|
|
|
public int Test ()
|
|
|
|
{
|
|
|
|
dynamic d = new C ();
|
|
|
|
return D.Foo (d.Value);
|
|
|
|
}
|
|
|
|
|
2014-09-04 09:07:35 +01:00
|
|
|
public static int Test2 (dynamic d)
|
|
|
|
{
|
|
|
|
return Foo.Method(d);
|
|
|
|
}
|
|
|
|
|
2014-08-13 10:39:27 +01:00
|
|
|
public static int Main ()
|
|
|
|
{
|
|
|
|
var c = new C ();
|
|
|
|
if (c.Test () != 1)
|
|
|
|
return 1;
|
2014-09-04 09:07:35 +01:00
|
|
|
|
|
|
|
if (C.Test2 ("s") != 1)
|
|
|
|
return 2;
|
2014-08-13 10:39:27 +01:00
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public struct D
|
|
|
|
{
|
|
|
|
public int Foo (string value)
|
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
2014-09-04 09:07:35 +01:00
|
|
|
|
|
|
|
public class Foo
|
|
|
|
{
|
|
|
|
public static int Method (string s)
|
|
|
|
{
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|