码迷,mamicode.com
首页 > 其他好文 > 详细

静态字段、静态函数、成员常量

时间:2017-01-17 07:46:49      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:new   输出   public   存储位置   其他   静态成员   blog   全局   方法   

  静态字段:


 

  □ 静态字段被类的所有实例共享,所有的实例都访问同一内存块。因此,如果该内存块的值被一个实例修改了,这种改变对所有实例是可见的。

  □ 访问静态变量通过类名.字段名访问

  □ 即使类没有实例任何对象,也存在静态字段。如果静态字段有初始化语句,不必要在程序执行之前就赋初始值,可以在使用该字段前再赋值(这点与const常量不一样,const常量是声明就赋值)

例如:

    class Program
    {
        static void Main(string[] args)
        {
            MyClass myclass1 = new MyClass();
            MyClass myclass2 = new MyClass();

            myclass1.PrintNum();
            myclass2.PrintNum();

            myclass1.Num = 10;

            myclass1.PrintNum();
            myclass2.PrintNum();

            MyClass._num = 20;

            myclass1.PrintNum();
            myclass2.PrintNum();

            Console.ReadKey();
            
        }
    }

    class MyClass
    {
        public static int _num = 0;

        public int Num
        {
            get { return _num; }
            set { _num = value; }
        }

        public void PrintNum()
        {
            Console.WriteLine(_num);
        }
    }

  输出是:

  0 0 10 10 20 20(打竖)

  Tip:静态字段可以被实例改变值,但是不能通过实例.静态字段名来改变,但可以通过实例内部调用的函数改变值(如属性)。因为静态字段是类的共有字段,不能被实例化成实例对象的字段。


  静态函数


  □ 如同静态字段,即使类没有实例化对象,也可以调用静态函数,调用方法同样是:类名.静态函数名

  □ 静态函数不能访问实例成员。它可以访问其他静态成员。

技术分享


可以声明为静态的类成员类型:

数据成员(储存数据):字段、类型

函数成员(执行代码):方法、属性、构造函数、运算符、事件


  成员常量


 

  □  所谓成员常量而非常量,是因为C#不像C和C++拥有全局常量,每个常量都必须声明在类里面,只能是类的成员。

  □  成员常量表现的像静态量一样,但是不能被static关键字修饰。与真正的静态量不同,常量没有自己的存储位置,而是在编译时被编译器替换。

例如:

    class Program
    {
        static void Main(string[] args)
        {
            MyClass myclass = new MyClass();


            Console.WriteLine(MyClass._num);
            Console.ReadKey();
            
        }
    }

    class MyClass
    {
        public const int _num = 20;
    }

输出:20

  在使用常量同样是函数名.常量名

 

  

静态字段、静态函数、成员常量

标签:new   输出   public   存储位置   其他   静态成员   blog   全局   方法   

原文地址:http://www.cnblogs.com/syman/p/6291482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!