C#

namespace study_static
{
    /// <summary>
    /// 通过static关键字修饰,是属于类,实例成员属于对象,在这个类第一次加载的时候,这个类下面的所有静态成员会被加载。
    /// 静态成员只被创建一次,所以静态成员只有一份,实例成员有多少个对象,就有多少份。
    /// 编译器不允许静态类有任何实例成员
    /// </summary>
    static class StaticTest
    {
        public static string Name;

        /// <summary>
        /// 1、静态类可以有静态构造函数,静态构造函数不可继承;
        /// 2、静态构造函数可以用于静态类,也可用于非静态类;
        /// 3、静态构造函数无访问修饰符、无参数,只有一个 static 标志;
        /// 4、静态构造函数不可被直接调用,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且只执行一次。
        /// </summary>
        static StaticTest() {
            Name = "gongyg";
        }

        /// <summary>
        /// 为原始类型扩展方法
        /// 使用this时,类必须为static
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public static string ToString2(this string param)
        {
            if (param == null)
            {
                return "";
            }
            return param.Trim();
        }
    }
}

  

using System;

namespace study_static
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(StaticTest.Name);//gongyg
            string str = " 12 ";
            Console.WriteLine(str);
            Console.WriteLine(str.ToString2());
        }
    }
}

  

原文地址:https://www.cnblogs.com/gygtech/p/13913871.html