3

As we know Microsoft introduced the dynamic type a long time ago. And I also applied it in some case in the ASP.NET MVC application. But to me, it is not good for all cases. In specific, it's seen to be violating some basic principals like The Acyclic Dependencies Principle. For example, I have a package A that using package B, then in B I use dynamic and reference to A. It work fine. So the question is how do I use the dynamic type in correct way?

4

3 回答 3

2

经验之谈:不要这样做。说真的,迟早你会后悔的。每次我决定使用动力学时,我都发现这是一个错误。使用动态使重构成为一场噩梦,并且您失去了最大的优势,即类型安全。错误将出现在运行时而不是编译期间。

细化你的设计并使用 oop 原则或尝试找到一些通用接口通常会好十倍。

它应该仅用于简化使用动态语言(如 java 脚本)的工作。否则,这对您的程序性能和您的头脑清醒都是不利的:)

所以动态的最佳实践是:尽量避免使用它们

于 2013-05-17T08:15:25.543 回答
2

动态不是一种类型,它是语法糖。类型将是对象,但编译器会放入大量代码以在运行时检测变量的实际类型。

当您不知道实际类型时使用它,例如在 .Net 上运行的动态语言使用它。

它可以被滥用,作为一种懒惰的快捷方式(但为此使用var),但在这种情况下你会受到性能损失。长话短说,当您无法通过强类型轻松解决问题时,应该使用它。

于 2013-05-17T08:21:09.363 回答
1

我认为动态关键字很好,但我们必须非常小心地使用它,就像上面提到的 Mike 一样。我在一些小例子上使用了它。当我们使用它时,我们知道它,所以当有人调用它时,他/她必须知道动态使用什么样的对象。希望这有帮助。

于 2013-05-18T07:31:40.633 回答