您的位置:首页 > 编程语言 > C#

C#中静态变量用法简要说明

2010-10-27 12:54 288 查看
近来书本里面经常用到静态变量和静态方法,很多同学感觉迷糊,这里对其做一个简单说明。
首先,静态变量和私有变量的最主要的区别就在于:他们分配内存空间的方式不一样。 静态变量的内存是在程序开始执时变量就占用了内存,直到程序结束时变量才释放内存. 私有变量(局部变量)是在程序运行到该步的时候分配内存。所以,当离开了该私有变量的作用域的时候,私有变量的内存空间会被释放。例如在FOR循环里面定义变量出了循环结构就不能再使用,除非再定义一个。 所以:静态变量只的值只会初始化一次,后面每次访问,都是上次处理过的值,(即使是在一个函数内部)。私有变量每次都初始化。也就是说每次都开辟一个内存空间存储。
class test
{
static void Main(string[] args)
{
Console.WriteLine(sort.i); // C#中未赋初值的变量系统自动赋为0,所以输出结果为0;同时可以看到静态变量的访问方法(类名.静态变量名)。在外调用这个变量的方法是”类.变量名”
sort.i = 10;
Console.WriteLine(sort.i); //输出10
}
}
class sort
{
public static int i;
public sort()
{
i = 3;// 在类内部访问静态变量时,直接用静态变量名即可,不用以(类名.静态变量名),这样的方式访问,
}
}
之所以有时声明为私有静态变量,是为了让它只初始化一次.这样节省了内存空间但又想让它在外部是不可访问的,这样利用私有这个访问限定符就搞定了.
私有静态:安全又节省空间.
例如书本第五章里面也是采用这样的方式:
public class UserHelper
{
public static string loginId = ""; // 用户名
public static string loginType = ""; // 登录类型
}
通过这样的定义,在这个类后面的方法里面就可以使用同一个loginId和loginType,通过一些操作给这两个变量赋值就可以传递这个值到其它的窗体和类中,而不用在每一个事件里面重复定义这两个对像了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: