Asp.net mvc 什么';在ASP.NETMVC4中使用动态类型的最佳实践是什么?

Asp.net mvc 什么';在ASP.NETMVC4中使用动态类型的最佳实践是什么?,asp.net-mvc,asp.net-mvc-4,dynamic-typing,Asp.net Mvc,Asp.net Mvc 4,Dynamic Typing,正如我们所知,微软很久以前就引入了动态类型。我还在ASP.NETMVC应用程序中应用了它。但对我来说,这并不适用于所有情况。具体来说,它违反了一些基本原则,如。例如,我有一个使用包B的包a,然后在B中我使用动态和对a的引用。它工作得很好。所以问题是如何正确使用动态类型?根据经验:不要这样做。说真的,你迟早会后悔的。 每次我决定使用动力学时,我都发现这是一个错误。使用动力学会使重构成为一场噩梦,而您将失去最大的优势,即类型安全性。错误将显示在运行时而不是编译期间 改进设计、使用oop原则或尝试找到

正如我们所知,微软很久以前就引入了动态类型。我还在ASP.NETMVC应用程序中应用了它。但对我来说,这并不适用于所有情况。具体来说,它违反了一些基本原则,如。例如,我有一个使用包B的包a,然后在B中我使用动态和对a的引用。它工作得很好。所以问题是如何正确使用动态类型?

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

改进设计、使用oop原则或尝试找到一些通用接口通常会好十倍

它只应用于简化使用动态语言(如java脚本)的工作。否则,这对您的程序性能和您的心智健全都是有害的:)


因此,使用动态的最佳实践是:尽量避免使用它们

动态不是一种类型,而是一种语法上的糖分。类型将是object,但编译器将在运行时输入大量代码来检测变量的实际类型

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


它可以被滥用,作为一种懒惰的快捷方式(但对于这种用法,var),但在这种情况下,您将得到性能惩罚。长话短说,当你不能用强输入轻松解决问题时,应该使用它。

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

NancyFX是一个非常依赖动态的项目的完美例子,它运行得非常好。静态语言和动态语言之间存在不匹配。一些静态语言试图做它在动态语言中是什么,反之亦然。我不知道微软为什么引入这种类型。@ThangChung Dynamic不是一种类型,它是一个关键字。噢,那么.NET中的动态类型是什么呢?我听到有人叫动态对象,动态类型,。。。动态性能的ETCC性能惩罚非常小,只有在第一次调用或缓存命中缺失时才会受到攻击。最小值或最小值,在使用动态时,我们应该意识到性能损失。@迈克:就像您所说的,我们必须考虑我们尝试使用什么。但在某些情况下,我们有一个团队,有人这样做,有人用另一种方式使用。@Phil:我认为我们必须在动态环境中澄清动态评估。在这种情况下,实际上需要最小化内存。感谢您的良好验证如果您已经在使用dynamic,并且有人考虑过它,那么问题是什么?