C# 十九、静态

关键字:static

在类中可以定义为静态的成员有:字段,方法,属性,运算符,事件,构造函数等,不可以是索引器,析构函数。

静态成员与非静态成员/实例成员区别:

1、

静态成员属于类所有,为各个类的实例所公用。

非静态成员属于类的实例所有。

2、

静态成员可以直接使用,不必创建对象,语法格式:类名.静态成员;

调用非静态成员,要先实例化类。

3、静态方法与非静态方法

静态方法只能访问类中的静态成员;

非静态方法可以访问类中的任何成员

4、

静态成员变量存储位于程序的全局变量存储区,其作用域限制为类内部,并且在整个程序运行期间只在内存中拥有一个存储位置,不会拷贝不会复制,只是一个;

非静态成员变量存储位于对象的变量存储区,多个对象拥有多个变量的存储,只隶属于自己的的对象。

5、

静态成员只要分配了空间则在整个程序运行期间,它都是存在的,只有程序关闭之后,它的内存才会被GC回收器收回;

类的非静态成员的生存周期跟随于隶属于对象的生存周期,对象消亡则非静态成员就会被回收。

静态类与非静态类区别:

1、

静态类仅包含静态成员。

2、

静态类不能使用 new 关键字创建静态类的实例。

3、

静态类不能包含实例构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。

4、

静态类是密封的,因此不可被继承。

5、

静态类不能使用abstract或sealed修饰符。

6、

静态类不能指定任何接口实现。

7、

静态类的成员不能有protected或protected internal访问保护修饰符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值