C#里的 var 和 dynamic 区别到底是什么,你真的搞懂了嘛

💡 原文中文,约1700字,阅读约需4分钟。
📝

内容提要

本文介绍了C#中var和dynamic关键字的区别,var在编译阶段确定类型,dynamic在运行时确定类型,二者在操作模式和性能上也有所不同。建议在有性能需求时使用var,慎用dynamic。关键词:C#、var、dynamic、类型、性能。

🎯

关键要点

  • var和dynamic都是不确定的类型,但有本质上的不同。

  • var在编译阶段确定类型,dynamic在运行时确定类型。

  • var的类型在赋值时就被确定,而dynamic的类型无法在编译时查看。

  • IL代码中,var的操作模式与dynamic明显不同,var直接推送值,而dynamic需要装箱。

  • ASM代码显示dynamic的代码复杂度高于var,性能问题明显。

  • 建议在有性能需求时使用var,慎用dynamic。

  • 总结:var在编译前确定类型,dynamic在运行时确定;var是简单值,dynamic是对象;var性能优于dynamic。

🏷️

标签

➡️

继续阅读