asp.net中静态变量和非静态变量的区别

作者:网络 来源:佚名 更新时间:2009-03-31 14:37:19 点击:

静态变量:
静态变量使用 static 修饰符进行声明
在所属类被装载时创建
通过类进行访问
所属类的所有实例的同一静态变量都是同一个值
非静态变量:
不带有 static 修饰符声明的变量称做非静态变量
在类被实例化时创建
通过对象进行访问
同一个类的不同实例的同一非静态变量可以是不同的值
示例:


[复制到剪贴板]code:

using system;
using system.collections.generic;
using system.text;
namespace example01
{
    class program
    {
        class class1
        {
            public static string staticstr = "class";
            public string notstaticstr = "obj";
        }
        static void main(string[] args)
        {
            //静态变量通过类进行访问,该类所有实例的同一静态变量都是同一个值
            console.writeline("class1's staticstr: {0}", class1.staticstr);
            class1 tmpobj1 = new class1();
            tmpobj1.notstaticstr = "tmpobj1";
            class1 tmpobj2 = new class1();
            tmpobj2.notstaticstr = "tmpobj2";
            //非静态变量通过对象进行访问,不同对象的同一非静态变量可以有不同的值
            console.writeline("tmpobj1's notstaticstr: {0}", tmpobj1.notstaticstr);
            console.writeline("tmpobj2's notstaticstr: {0}", tmpobj2.notstaticstr);
            console.readline();
        }
    }
}


结果:
class1's staticstr: class
tmpobj1's notstaticstr: tmpobj1
tmpobj2's notstaticstr: tmpobj2