是否有一种梦想语言融合了动态和强类型的好处?

Mr.*_*ame 6 duck-typing strong-typing dynamic-typing c#-4.0

我有兴趣学习一种语言,它在内部处理对象作为哈希表(如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();
}
Run Code Online (Sandbox Code Playgroud)

我希望这个程序能够无错误地编译,无异常运行并在控制台上打印 "Miauew".有没有可以做到这一点的语言?也许C#4.0?

Emi*_*elt 3

也许是 C# 4.0 中新的动态类型。看看这个: http: //blogs.msdn.com/cburrows/archive/2008/10/27/c-dynamic.aspx