[C#学习笔记:静态变量]

[C#——菜鸟学习笔记:静态变量]

主要是记录一下学习笔记,希望能利用这个过程让自己加深一下印象,如果能对其他同学有一点点帮助也是极好的,不敢在各位大神面前班门弄斧。也希望各位大神能多多指点,带带小老弟!!!在这里插入图片描述

1. 关键字

static
例: public static int num;

2. 静态存储

1)静态存储变量通常是在变量定义时就分定存储单元并一直保持不变,直至整个程序结束。静态变量,全局动态变量都是静态存储

2)静态存储变量是一直存在的。

3)静态存储只会初始化一次
源自:百度百科

静态变量定义

静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。反之,如果不声明为static,即使和Main方法从属于同一个类,也必须经过实例化
关键字static把类成员定义为静态的,意味着,该类中只有一个该成员的实例,无论有多少个类的对象被创建,只会有一个该静态成员的副本。
源自:菜鸟教程

3. 实例

using System;
namespace StaticVarApplication
{
    class StaticVar
    {
       public static int num;
        public void count()
        {
            num++;
        }
        public int getNum()
        {
            return num;
        }
    }
    class StaticTester
    {
        static void Main(string[] args)
        {
            StaticVar s1 = new StaticVar();
            StaticVar s2 = new StaticVar();
            s1.count();
            s1.count();
            s1.count();
            s2.count();
            s2.count();
            s2.count();         
            Console.WriteLine("s1 的变量 num: {0}", s1.getNum());
            Console.WriteLine("s2 的变量 num: {0}", s2.getNum());
            Console.ReadKey();
        }
    }
}

代码编译执行的结果为:
s1 的变量 num: 6
s2 的变量 num: 6

程序源自:菜鸟教程

因为静态变量num在定义时就已经分配了存储单元,并保持不变,count()函数调用时,S1,S2均是指向num的存储单元,而不是像动态变量那样进行调用变量,分配地址,赋值,释放。所以count()函数返回的结果一直存储在num中不会被释放,进行第二次调用时,在第一次返回值的基础上进行了自加1,所以最后的输出结果是6。
表面上看是S1,S2各自加1了三次,但实际上是num自加1了六次,最后输出的都是num的值,这也解释了“当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。”

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值