• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#内存分配

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

值类型 & 引用类型

我们知道,C#变量类型可以分为值类型和引用类型,值类型包括:简单类型(包括DateTime)、结构类型和枚举类型,引用类型包括类、数组、接口等。在变量初始化时,值类型在栈中操作,而引用类型在内存堆中操作;栈(Stack)是在编译时分配内存空间,而堆(Heap)在运行时动态分配内存空间,可以根据程序的运行情况动态的分配内存大小,因此,值类型在内存中占用一个预定义的字节数。这里的栈和数据结构中的栈Stack一样,都是先进后出的,栈中上面的变量总是比下面的变量先离开作用域。

static

在C#中没有全局变量的概念,可以通过静态变量实现全局使用的效果,静态变量在类中类似全局变量,保存公共信息,所有该类的实例共享该值。
声明方式很简单, 只需要在数据类型前面加上static关键字即可,引用时用 类名.静态变量 引用。
静态变量存放在内存堆或者自由存储区,常量是存放在常量存储区。

如果一个类中有static类型的变量,那么这个类所有实例都共享这个变量.
在web开发中要谨慎使用ASP.NET 的static变量,因为每个对象的实例都可以访问这个static变量,容易导致串号(张三的名字被李四用了)现象。
可以使用Session或者Cookie形式代替。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap