您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

动态(C#4)和var和有什么区别?

动态(C#4)和var和有什么区别?

var是静态类型的-编译器和运行时 类型-它们只是为您节省了一些类型…以下是100%相同的:

var s = "abc";
Console.WriteLine(s.Length);

string s = "abc";
Console.WriteLine(s.Length);

发生的所有事情是 发现s必须是一个字符串(来自初始化程序)。在两种情况下,它都知道(在IL中)s.Length意味着(实例)string.Length属性

dynamic是 不同的野兽;它与最为相似object,但是具有动态分配功能

dynamic s = "abc";
Console.WriteLine(s.Length);

在这里s键入 。它不知道string.Length,因为它不知道 有关s在编译时。例如,以下代码也将编译(但不运行):

dynamic s = "abc";
Console.WriteLine(s.FlibbleBananasnowball);

在运行时(仅),它将 检查FlibbleBananasnowball属性-找不到它,并在火花中爆炸。

使用dynamic,可以 根据实际对象解析属性/方法/运算符/等。与COM(可以具有仅运行时属性),DLR或其他动态系统(例如)交谈非常方便javascript

c# 2022/1/1 18:13:43 有561人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶