我有兴趣学习一种语言,它在内部处理对象作为哈希表(如
JavaScript),但可以用强类型包装它们,以便在设计时提供代码完成/智能感知的好处.以下是我希望这种梦想语言能够发挥作用的方式:
public class Lion { public void Roar() { Console.WriteLine("Aaarrgghh");} } public static Main(string[] args) { object myCat = new object(); // just plain object,no type! // adding a Roar() method to the myCat instance myCat.Roar += delegate() {Console.WriteLine("Miauew");} // At this point myCat should qualify to be a Lion. // So we should be able to successfully duck-type-cast // her to a lion Lion myLion = myCat as Lion; // now the myLion reference is strongly typed,// so I expect the Intellisense window pop up // and offer me the Roar() method when I hit the dot after "myLion" myLion.Roar(); }
我希望这个程序编译没有错误,无异常运行并打印
控制台上的“Miauew”.有没有可以做到这一点的语言?也许C#4.0?
解决方法
也许是C#4.0中的新动态类型.
看看这个: http://blogs.msdn.com/cburrows/archive/2008/10/27/c-dynamic.aspx
看看这个: http://blogs.msdn.com/cburrows/archive/2008/10/27/c-dynamic.aspx