我们可以将var和dynamic分配给任何数据类型,所以这些存储在内存中的位置在哪里? var在编译时解析,我的理解是var根据赋值存储在堆或栈中。但是动态在运行时被解析,所以在它们存储在哪里之前?Var或动态变量引用类型或值类型?
-3
A
回答
2
var
仅仅是变量声明的语法糖。 var str = "abc";
和string str = "abc";
之间没有功能差异,因此它是堆栈还是堆取决于您正在使用的类型。
https://msdn.microsoft.com/en-us/library/dd264741.aspx
dynamic
结合有一堆东西引擎盖下但最终被类似地处理到object
,所以这将是这使它在堆上引用类型。
1
正如您所说,var
关键字对运行时间没有意义。它是编译器为推断类型换出的语言细节。
dynamic
对象始终为boxed以表现为引用,即使实际类型是值类型,例如int
。
您可以得出结论,声明为动态的变量将始终表现为引用。引用本身将属于它创建的范围(本地堆栈,堆中的成员),但它引用的对象将存储在堆内存中。
相关问题
- 1. 引用或值类型?
- 2. 引用类型或类类型变量不能接受给定值
- 3. 字符串:JavaScript中的原始类型变量或引用类型变量?
- 4. 检索动态值类型变量
- 5. 动态类型或泛型/ SQL
- 6. 自动在c + + 11是静态类型或动态类型
- 7. 引用int或其他值类型
- 8. 是不需要声明变量类型的弱语类型或动态类型示例的语言的质量
- 9. 在Swift中是一个值类型或引用类型?
- 10. 数据集/数据表是值类型或引用类型
- 11. 作为原始类型或引用类型的变量存储函数?
- 12. !ClrStack局部变量 - 它是值类型还是引用类型
- 13. 动态 - 它是引用类型还是值类型?
- 14. C#'动态'变量可以引用静态类型吗?
- 15. Javascript类变量 - 这个。或var
- 16. 需要的变量类型或不
- 17. “C”sizeof与类型或变量
- 18. 运算符[]根据变量类型返回引用或复制
- 19. 静态类是引用类型还是值类型?
- 20. 哪一个更好?在变量类型声明中使用var或使用像int这样的真正类型,...?
- 21. 给定类型的动态变量
- 22. 检查动态类型的变量android
- 23. clang - 符号(变量,函数,类型等)定义或声明或引用
- 24. 类型或
- 25. 超类型或亚型的类型
- 26. 调用静态类的方法传递动态变量的类型与泛型
- 27. c#值类型和引用类型
- 28. 引用类型.NET中的值类型
- 29. 引用类型与值类型
- 30. 值类型字段是引用类型?
你得到任何答案将是一个[详细FPGA实现(https://blogs.msdn.microsoft.com/ericlippert/2009/04/27/the-stack-is-an-于实现的细节部分酮/) – stuartd