【C#基础学习】第十三章、静态static关键字的使用

目录

静态static的使用

1 静态类

2 静态成员

3 静态构造函数


静态static的使用

        使用 static 修饰符可声明属于类型本身而不是属于特定对象的静态成员。

        (static 修饰符不能用于索引器或终结器)


1 静态类

使用静态类的语法

        static class 类名{...}

使用静态类的意义

  • 它防止程序员写代码时实例化该静态类。
  • 它防止在类的内部声明任何实例字段或方法。

使用静态类的要求

  • 静态类的成员都是静态的。(常数或类型声明是隐式的 static 成员。 不能通过实例引用 static 成员。 然而,可以通过类型名称引用它。)
  • 静态类不能实例化。
  • C#编译器会自动把静态类标记为sealed。(这个关键字将类指定为不可扩展,换言之,不能从它派生出其他类。)

注意:非静态类可以包含静态的方法、字段、属性或事件。


2 静态成员

        若使用static关键字修饰类成员,则该成员为静态成员。(索引器和终结器不能被static修饰)

语法:

        访问修饰符 static 数据类型 变量名...        //静态成员定义

使用静态成员的要求

  • 无论对一个类创建多少个实例,它的静态成员都只有一个副本。
  • 静态方法只能被重载,而不能被重写,因为静态方法不属于类的实例成员。
  • 静态方法和属性不能访问其包含类型中的非静态字段和事件,并且不能访问任何对象的实例变量。
  • 在字段中,static不能与const同用,因为 const 字段的行为在本质上是静态的。这样的字段属于类。

注意:在C#中静态成员是比较敏感的东西,在不是十分确认的情况下不要使用;

实例1:

class People
{
    //声明静态字段
    public static string Name; 
    //声明实例字段
    public int Age;
}

class Program
{
    static void Main(string[] args)
    {
        //实例字段通过实例对象访问
        People one=new People();
        one.Age=18;
        //静态字段只能通过类名访问
        People.Name="人类";
    }
}

示例2:

public class People
{
    //静态字段
    public static string Name;
    
    //静态属性
    public static string Name
    {
        get
        {
            return Name;
        }
        set
        {
            Name = value;
        }
    }
}

3 静态构造函数

        静态构造函数用于初始化类中的静态成员。

        

使用静态函数的要求:

  • 静态类可以有静态构造函数,静态构造函数不可继承。
  • 静态构造函数可以用于静态类,也可用于非静态类。
  • 静态构造函数无访问修饰符、无参数,只有一个 static 标志。
  • 静态构造函数不可被直接调用,在创建第一个实例或引用任何静态成员之前,CLR(公共语言运行时)都将自动调用静态构造函数,静态构造函数将被自动执行,并且只执行一次。

class People
{
    
    private static string name;
    

    //声明属性
    public static string Name
    {
        get{return name;}
    }

    static People()
    {
        Console.WriteLine("静态构造函数被调用");
        name="Learning Hard";
    }
    
}
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(People.Name);
        Console.WriteLine(People.Name);
    }
}

结果如下:

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ohrkaninchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值