C# static 的占用内存问题

我不太明白想问一下:一方法如果是static是不是即使不调用这个方法这个方法也一直占用一定的内存空间。例如:如果一个方法不是STATIC在他被new出来使用完后就会被GC... 我不太明白想问一下:
一方法 如果是static是不是即使不调用这个方法这个方法也一直占用一定的内存空间。
例如:如果一个方法不是STATIC 在他被new 出来使用完后就会被GC回收了?如果这方法是STATIC的是不是在整个应用程序进程中一直占用的着内存无法被GC回收?

在就是如果设计这个程序,什么样的方法应该用STATIC 什么样的方法应该避免用STATIC 以便减少占用内存(我自己猜的)
展开
 我来答
z84552012
2010-11-17 · TA获得超过143个赞
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:106万
展开全部
第一个问题:对的,静态方法会首先创建,并且只会在应用程序结束的时候销毁.
第二个问题:静态可以看做全局方法,也就是那些在同一命名空间下需要随时调用的方法都可以作为静态方法,譬如扩展方法,你所有object类型的.ToString()方法就是扩展方法,他可以在任何地方调用,编程要灵活,没有特定的方法来告诉你什么时候该用不该用,多积累经验,时间久了你就明白了.
而且现在硬件环境的提升,对内存的需求也不是太紧张了,刚开始入门的时候完全可以先不考虑这个问题,等有经验了,你自然就知道该怎么做了!

参考资料: 纯手打

gakuseii
2010-11-17 · TA获得超过200个赞
知道答主
回答量:103
采纳率:0%
帮助的人:67.8万
展开全部
1.无论static方法还是非static方法,都会映射到内存中,因此他们占据的内存空间是一样的。
2.new 对象不会增加方法占用的内存空间,只会增加对象内字段占用的空间。
3.gc不管理方法占用的空间。
4.用不用static不会改变方法占用内存的方式,static只对field的内存分配方式有影响。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式