| 
									
										
										
										
											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; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |