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,通过一些操作给这两个变量赋值就可以传递这个值到其它的窗体和类中,而不用在每一个事件里面重复定义这两个对像了!
首先,静态变量和私有变量的最主要的区别就在于:他们分配内存空间的方式不一样。 静态变量的内存是在程序开始执时变量就占用了内存,直到程序结束时变量才释放内存. 私有变量(局部变量)是在程序运行到该步的时候分配内存。所以,当离开了该私有变量的作用域的时候,私有变量的内存空间会被释放。例如在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,通过一些操作给这两个变量赋值就可以传递这个值到其它的窗体和类中,而不用在每一个事件里面重复定义这两个对像了!
相关文章推荐
- JQuery-UI简要用法及说明文档
- C# String.Format用法和格式说明
- Dreamweaver插件用法简要说明
- C#关键字var的简要说明
- 关于C#命名空间的说明与用法
- C# String.Format用法和格式说明
- 原创 导弹能否摧毁目标?一个简单的例子说明c# 中property(性质)的用法
- 简要说明 C#中构造函数的作用
- JAVA常用关键字及其用法简要说明
- C# String.Format用法和格式说明
- C#跨线程操作控件 通过委托处理,MSDN上又很详细用法的说明
- c#, Task用法说明
- C# 运算符 ?、??、?: 各种问号的用法和说明
- C#中Encoding简要介绍总结,编码的说明
- JSONKit 用法简要说明 iOS
- C# String.Format用法和格式说明
- C#之消息队列的简要说明
- SREng用法简要说明图文教程(如何获得日志/删启动项目/服务/驱动/BHO等)
- C# 中var的用法说明
- C# 中var的用法说明