引用类型在内存中是分配在堆上,其类型本身的最大长度是可变的。如:sting,class,...
值类型在内存中是分配在堆栈上,其类型本身的最大长度是固定的。如:int,boolean,...
值类型在内存中是分配在堆栈上,其类型本身的最大长度是固定的。如:int,boolean,...
解决方案 »
- 今天使用C#做一个下载文件的程序 发现了两种可以下载文件的方法,请高手指点下两种的区别
- 带有密匙的安装程序怎么做?
- C# TabPage中添加了Form,Form中的DataGridView有问题??
- 初学者
- Framework1.1时正常运行,现升级到Framework2.0出现此错误,大家帮我看一下
- 如何做分级的水晶包表
- 为什么以下代码在vs2003测试通过而在vs2005不能通过?????????
- .net 2.0 的createuserwizard的验证规则怎么改变,
- 新手问题之第六贴-----------数据绑定只是帮当前dataset的数据取得对应的控件吗?
- 重发关于MDI的问题----上一个问题我没描述清楚,对不起!
- HOW TO: Create a Summary Row For a Windows Form DataGrid by Using C# ????
- 怎样调用flash控件阿,我在com调用里没有找到。
而值类型在STACK上,不需要GC回收,因为遵从后进先出的原则,性能更优,因为调用GC对性能有所影响。
C#对CLASS和STRUCT分别定为引用类型和值类型,就是为了在处理对象方面保留性能的选择给用户
跟GC回收有关。
class cls{
public Int32 m;
}
struct str{
cls mycls;
}
main()
{
str struc1,struc2;
struc1.mycls.m=10;
struc2=struc1;
struc2.mycls.m=20;//结果struc1的mycls.m的值也变化了,这如何理解结构类型是值类型呢?}