zoukankan      html  css  js  c++  java
  • 小问题【6】

    静态成员

    静态字段:使用static关键字定义静态字段,如果不对静态字段进行初始化,静态字段将字段获得默认值(0、null、false)。

    静态字段从属于类本身,而不是实例。从类的外部访问时,需要使用类名。在类自身内部的代码总,可以省略类名。

    C#不能在同一个类中定义同名的静态字段和实例字段。重复的名称在声明空间中会造成冲突。

    静态方法:

        this关键字在静态方法中是无效的。

    静态构造器:  对类(不是类实例)进行初始化。“运行时”会在首次访问类是自动调用静态构造器。

    在静态构造器中进行的赋值优先于声明字段时进行的赋值,即结果是静态构造器中的值。

    在声明的同时完成静态初始化,性能比使用静态构造器高,尽量用前者,因为后者会自动插入一些负责检查的代码。

    示例代码:

      class Program
      {
        static void Main()
        {
          Console.WriteLine(Employee.NextId); //100
          Console.ReadKey();
        }
      }
      class Employee
      {
        static Employee()
        {
          NextId = 100;
        }
        public static int NextId =42;
      }

    静态属性:  使用静态属性几乎肯定要比使用公共静态字段好,因为公共静态字段在任何地方都能调用,而静态属性则至少提供了一定程度的封装。

    示例代码:

      class Employee
      {
        public static int NextId
        {
          get
          {
            return _NextId;
          }
          private set
          {
            _NextId = value;
          }
        }
        public static int _NextId =42;
      }


    静态类:

        这个类不包含任何实例字段(或方法)。静态类的作用:1. 防止程序员写代码来实例化这个类;2.防止在类的内部声明任何实例字段或方法。 3. 这个类是不可扩展的,C#编译器会在CIL代码中把它标记为abstract 和 sealed。

  • 相关阅读:
    iOS中的NSTimer 和 Android 中的Timer
    正则表达式中*的使用小注意
    NSUrlConnection 和 NSUrlRequest 的关系
    iOS 中的第三方库管理工具
    Android 向Application对象添加Activity监听
    Android dp px转化公式
    Android 返回桌面的Intent
    Spring+SpringMVC+Hibernate小案例(实现Spring对Hibernate的事务管理)
    Equinox OSGi应用嵌入Jersey框架搭建REST服务
    在OSGI容器Equinox中嵌入HttpServer
  • 原文地址:https://www.cnblogs.com/wouldguan/p/2407001.html
Copyright © 2011-2022 走看看