C#的dynamic使用中有啥需要注意的地方,以免滥用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#的dynamic使用中有啥需要注意的地方,以免滥用相关的知识,希望对你有一定的参考价值。

参考技术A

主要有两点。

    dynamic成员在编译时会跳过所有的静态类型检查,这意味着它永远不会被报编译错误,也就是说你得不到编译器的帮助而只能在运行时发现错误。编码时请做好检查或者添加必要的日志。此外,涉及dynamic成员的代码并不会被编译器优化。

    我的测试数据表明在.NET 4.5下访问dynamic对象的一个成员时需要的时间大约是访问静态类型的静态成员的12倍,但是它依旧比反射访问一个静态类型的静态成员要快约9倍。如果是为了避免复杂的业务逻辑和避开反射可以考虑一用。


我个人的标准是,优先强类型,多写一个类或接口不算什么事儿。不到万不得已不写dynamic,哪怕它可能节省了很多代码。

本回答被提问者采纳

以上是关于C#的dynamic使用中有啥需要注意的地方,以免滥用的主要内容,如果未能解决你的问题,请参考以下文章

c#中有啥类似的fread命令

终于知道C#的动态类型有啥用了

不处理 C# 方法的返回值可以吗?这个例子中有啥好的做法?

.NET 中有啥比 SqlDataReader 更快的吗?

想要删除linux中的zookeeper 有啥注意的地方没

C#中winform中有啥办法区分Close()和点击窗体右上角关闭按钮来关闭窗体