using System;
 
public class Test
{
	class Base {
	}
	class Derived : Base {
		public string X {get;set;}
	}
 
 
 
	public static void Main()
	{
		Func<Derived,object> original = d => d.X;
		Func<Base,object> converted = b => original((Derived)b);
		Base obj = new Derived {X = "hello"};
		Console.WriteLine(converted(obj));
	}
}
				dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJY2xhc3MgQmFzZSB7Cgl9CgljbGFzcyBEZXJpdmVkIDogQmFzZSB7CgkJcHVibGljIHN0cmluZyBYIHtnZXQ7c2V0O30KCX0KCQoJCgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQlGdW5jPERlcml2ZWQsb2JqZWN0PiBvcmlnaW5hbCA9IGQgPT4gZC5YOwoJCUZ1bmM8QmFzZSxvYmplY3Q+IGNvbnZlcnRlZCA9IGIgPT4gb3JpZ2luYWwoKERlcml2ZWQpYik7CgkJQmFzZSBvYmogPSBuZXcgRGVyaXZlZCB7WCA9ICJoZWxsbyJ9OwoJCUNvbnNvbGUuV3JpdGVMaW5lKGNvbnZlcnRlZChvYmopKTsKCX0KfQ==