C#类中的变量内存分配问题。高手请进 本帖最后由 gyf529036756 于 2011-05-25 14:48:24 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int x = 1中的变量x是在什么时候分配内存的,我在调试过程中,int x=1是在执行构造函数之前运行的。 C#允许使用内联(inline)初始化语法来初始化类的字段。所谓内联,就是指代码中直接赋值来初始化,而不是通过构造器。 我做了个实验。就是只写A a;//后面加断点发现a为null,说明这时没有分配内存。A a = new A();//后面加断点发现a有值,说明已经分配了。不知你问的是不是这个? A a = new A();这一句做了三件事1,堆上分配内存2,调用构造,初始化对象成员3,将这个新对象的引用赋给a至于那个x,因为x是类的成员,在为对象分配内存时当然要给他分个单人间,所以x和对象是同时分配在堆上的另:方法中的变量分在线程栈上 楼上说得对,A a = new A();这条语句在定义a的同时已经实例化了,在实例化之前x是没有分配内存的。 请问在C#中判断两条线段是否平行有哪些思路? 多线程问题 我写的一个通过TcpClient同步阻止模式下向服务器发送消息的方法,请各位提一下意见。 高分!!求一段比较麻烦的正则的达试! 【急,高分】 treenode 的fullpath 问题 帮助啊?? 内存占用率太高! winform中多表导出,放在压缩包内。。如何实现?? 如何得到被删除的记录 怎么在datagrid custom webcontrols里实现动态列的数据绑定功能?谢谢! C# winform项目打包后找不到添加的文件 WPF,图片如何嵌入到exe文件
所谓内联,就是指代码中直接赋值来初始化,而不是通过构造器。
//后面加断点
发现a为null,说明这时没有分配内存。A a = new A();
//后面加断点发现a有值,说明已经分配了。不知你问的是不是这个?
这一句做了三件事
1,堆上分配内存
2,调用构造,初始化对象成员
3,将这个新对象的引用赋给a至于那个x,因为x是类的成员,在为对象分配内存时当然要给他分个单人间,所以x和对象是同时分配在堆上的
另:方法中的变量分在线程栈上
在实例化之前x是没有分配内存的。