【发布时间】:2017-05-31 21:30:21
【问题描述】:
动态类型是否比相关类型使用更多的内存大小?
例如,字段是否只使用四个字节?
dynamic foo = (int) 1488;
【问题讨论】:
-
基础变量仍然是
int,所以是的,值是 4 个字节。不过,程序使用动态会产生一些额外的一般开销。 -
从根本上讲,
dynamic只是一个object,它使用了一堆花哨的反射使其表现得像一个动态类型。它不会占用比它实际表示的类型更多或更少的数据。 -
你的答案就在这里。 (注意第一个例子,动态类型和对象类型都返回 System.Int32 类型。)msdn.microsoft.com/en-us/library/dd264741.aspx
-
@Abion47 如果它使用一堆花哨的反射来使它像一个动态类型那么它如何只使用4个字节?你确定它没有开销或任何垃圾创建吗?你有参考吗?
-
@M.kazemAkhgary 与普通
Int32使用反射的方式相同,因为dynamic确实如此......
标签: c# sizeof dynamictype