.net 内存管理有关问题
.net 内存管理问题
想大虾分析下以上两种情况,.net 的内存分配是否一样。下面的例子中,参数800和600是否有创建对象,并占用内存。
------解决方案--------------------
- C# code
int width =800; int height = 600; CustomClass c = new CustomClass(width ,height );
- C# code
CustomClass c = new CustomClass(800,600);
想大虾分析下以上两种情况,.net 的内存分配是否一样。下面的例子中,参数800和600是否有创建对象,并占用内存。
------解决方案--------------------
- C# code
int x = 800; 00000033 mov edi,320h int y = 600; 00000038 mov ebx,258h Customclass c1 = new Customclass(x, y); 0000003d mov ecx,9E9D90h 00000042 call FD160AA4 00000047 mov esi,eax 00000049 push ebx 0000004a mov edx,edi 0000004c mov ecx,esi 0000004e call FD17B108 00000053 mov dword ptr [ebp-48h],esi Customclass c2 = new Customclass(800, 600); 00000056 mov ecx,9E9D90h 0000005b call FD160AA4 00000060 mov esi,eax 00000062 push 258h 00000067 mov ecx,esi 00000069 mov edx,320h 0000006e call FD17B108 00000073 mov dword ptr [ebp-4Ch],esi
------解决方案--------------------
.net所有类型的数据都是对象,连数据的类型本身都是对象。下面的也创建对象。