Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态变量编译_C#_C# 4.0 - Fatal编程技术网

C# 动态变量编译

C# 动态变量编译,c#,c#-4.0,C#,C# 4.0,我正在读一本书,在这一节中有一个绊倒,在第三行中,它只在运行时抛出错误,但它将编译,即使Foo方法不存在 为什么不在编译时而不是运行时检查它 编辑: 它的意义是什么,什么时候可以使用这个概念?对于dynamic,您指示编译器忽略它,让运行时处理它。这在处理COM和编译器不知道的其他接口时非常有用 如果需要隐式类型,请使用var。编译器将推断类型并将其保持为强类型。动态关键字会导致预期的这种行为。当使变量成为动态变量时,您可以使用它来做任何事情,使其在编译时不安全。因此,通过使其动态化,您可以完全

我正在读一本书,在这一节中有一个绊倒,在第三行中,它只在运行时抛出错误,但它将编译,即使Foo方法不存在

为什么不在编译时而不是运行时检查它

编辑: 它的意义是什么,什么时候可以使用这个概念?

对于dynamic,您指示编译器忽略它,让运行时处理它。这在处理COM和编译器不知道的其他接口时非常有用

如果需要隐式类型,请使用var。编译器将推断类型并将其保持为强类型。

动态关键字会导致预期的这种行为。当使变量成为动态变量时,您可以使用它来做任何事情,使其在编译时不安全。因此,通过使其动态化,您可以完全绕过compiletime类型——这就是为什么在使用它时要小心的原因

然而,在运行时检查成员是动态的全部要点——否则它为什么会存在呢


我假设您有意使用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