C# 动态变量编译
我正在读一本书,在这一节中有一个绊倒,在第三行中,它只在运行时抛出错误,但它将编译,即使Foo方法不存在 为什么不在编译时而不是运行时检查它 编辑: 它的意义是什么,什么时候可以使用这个概念?对于dynamic,您指示编译器忽略它,让运行时处理它。这在处理COM和编译器不知道的其他接口时非常有用 如果需要隐式类型,请使用var。编译器将推断类型并将其保持为强类型。动态关键字会导致预期的这种行为。当使变量成为动态变量时,您可以使用它来做任何事情,使其在编译时不安全。因此,通过使其动态化,您可以完全绕过compiletime类型——这就是为什么在使用它时要小心的原因 然而,在运行时检查成员是动态的全部要点——否则它为什么会存在呢C# 动态变量编译,c#,c#-4.0,C#,C# 4.0,我正在读一本书,在这一节中有一个绊倒,在第三行中,它只在运行时抛出错误,但它将编译,即使Foo方法不存在 为什么不在编译时而不是运行时检查它 编辑: 它的意义是什么,什么时候可以使用这个概念?对于dynamic,您指示编译器忽略它,让运行时处理它。这在处理COM和编译器不知道的其他接口时非常有用 如果需要隐式类型,请使用var。编译器将推断类型并将其保持为强类型。动态关键字会导致预期的这种行为。当使变量成为动态变量时,您可以使用它来做任何事情,使其在编译时不安全。因此,通过使其动态化,您可以完全
我假设您有意使用var关键字,它为您提供了编译时安全性。看一看。至于何时使用关键字,请查看。何时可以使用此技术?还是正确使用它?@Desperado,你正在读的这本书也应该有正确使用的解释。否则,在搜索中,会出现大量类似的问题。@Rahul是的,我读过,但并不是所有的概念和技术都存在。当我们与经验丰富的程序员打交道时,我们不能争辩汉克斯兄弟!这是有帮助的,即使我失去了一些我的声誉T.T主持人sigh@Rahul该问题自最初发布以来已变形。我何时可以使用此技术?或者正确的使用方法?通常一点也不,只有一种情况下你才应该使用它。不管怎样,只要你不必客气,我就不在乎了。谢谢兄弟!即使我失去了一些声誉,这也是有帮助的。T.T主持人现在接受了一个答案,你得到了它:,所以你得到了一些知识,什么也没有失去。。。听起来是一个积极的话题。我想我的名声回来了,我马上检查了一下。lol对不起,我不是一个以英语为母语的人。你可以将它标记为重复的,我在这篇文章中的唯一目标是从有经验的程序员那里获得信息,你无法在一本书甚至一些帖子中找到这些信息。
dynamic d = "hello";
Console.WriteLine (d.ToUpper()); // HELLO
Console.WriteLine (d.Foo()); // Compiles OK but gives runtime error