zoukankan      html  css  js  c++  java
  • 初始化静态成员时产生的盲区

    静态成员属于类而不是实例。静态成员的应用范围很广,比如,可在应用程序的全局内获取或设置公共的静态成员的值,这类似C++的全局变量,但是使用不当也会有麻烦。

    class Test
    {
    private static string strStaticName = "Hello";
    //无参构造器
    public Test()
    {
    }
    //有参构造器
    public Test(string strName)
    {
    strStaticName = strName;
    }
    
    public string GetName()
    {
    return strStaticName;
    }
    
    }
    
    static void Main(string[] args)
    {
    Console.WriteLine("创建t1实例时,名称设置为东方");
    //创建实例t1
    Test t1 = new Test("东方");
    Console.WriteLine("所以使用GetName方法获取的名称为:{0}",t1.GetName());
    Console.WriteLine("");
    
    //创建实例t2
    Console.WriteLine("创建t2实例时,名称未设置");
    Test t2 = new Test();
    string strName = t2.GetName();
    Console.WriteLine("但通过GetName方法获取的名称却为:{0}",strName);
    Console.Read();
    
    }
    

      

    调试后:

    分析在一个应用程序中,无论创建了一个类的多少实例,该类的静态字段都只被初始化一次。

    解决:1)取消静态关键字static

            2)都使用有参的构造器

            3)在无参构造器中,给静态字段赋值

                

                 public Test()
                 {
                      strStaticName="Hello";
                  }
    

      

    ——当我们面对枯燥窘迫甚至是痛苦的生活时,只是缺少了提枪上阵去干他娘的勇气!
  • 相关阅读:
    ​综述 | SLAM回环检测方法
    从零开始一起学习SLAM | 用四元数插值来对齐IMU和图像帧
    2019-2020年值得关注的9个AR发展趋势
    计算机视觉方向简介 | 图像拼接
    “人工智能资源对接平台”发布,找人、找技术不再难!
    解决上不了网的特例
    机械键盘简介
    笔记本升级方案
    CSS构造表单
    CSS构造表格
  • 原文地址:https://www.cnblogs.com/vakeynb/p/static.html
Copyright © 2011-2022 走看看