美文网首页
C#静态类和静态类成员

C#静态类和静态类成员

作者: 86a262e62b0b | 来源:发表于2019-10-15 16:57 被阅读0次

文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members#example

一. 静态类

特点:

  • 只包含静态成员。
  • 无法进行实例化。
  • 会进行密封。
  • 不能包含实例构造函数。

注意:

  • 程序中首次引用类之前初始化其字段并调用其静态构造函数。 静态构造函数只调用一次,在程序所驻留的应用程序域的生存期内,静态类会保留在内存中。
  • 使用静态类的优点是编译器可以进行检查,以确保不会意外地添加任何实例成员。 编译器可保证无法创建此类的实例。

二. 静态方法

  • 静态方法和属性无法在其包含类型中访问非静态字段和事件
  • 它们无法访问任何对象的实例变量,除非在方法参数中显式传递它。
  • 在首次访问静态成员之前以及在调用构造函数(如果有)之前,会初始化静态成员。
  • 对静态方法的调用会采用 Microsoft 中间语言 (MSIL) 生成调用指令,而对实例方法的调用会生成 callvirt 指令,该指令还会检查是否存在 null 对象引用。 但是在大多数时候,两者之间的性能差异并不显著。

相关文章

  • 深入理解C# 静态类与非静态类、静态成员的区别

    深入理解C# 静态类与非静态类、静态成员的区别静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不...

  • 2019-01-18

    二、.NET基础概念《静态类》 静态类:用static修饰的类。 注意:静态类的成员必须是静态成员,包括属性和方法...

  • C#静态类和静态类成员

    文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/program...

  • unity3d c#调用java

    c#调用java非静态方法 C#调用静态类,静态方法 ; CustomClass的静态类,SetData是它的静...

  • 猿学-java有什么用java基础技术总结

    加载顺序 父类静态成员->父类静态代码块-> 子类静态成员->子类静态代码块-> 父类普通成员->父类代码块->父...

  • C++基础学习

    1. 类的静态成员和非静态成员区别是: 类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过...

  • java静态方法的线程安全问题

    类的成员分为两类,静态成员(static member)和实例成员(instance member)。静态成员属于...

  • 7.6 类的静态成员

    7.6 类的静态成员 静态成员的特性 静态成员属于类,而不是对象。 类型可以是类对象、指针、引用、常量等。 静态成...

  • C++学习笔记三

    类和动态内存分配 1. 动态内存和类 静态成员 注意: 静态数据成员在类中声明,在类外初始化, 但如果静态成员是c...

  • 创建对象时调用顺序

    创建对象时调用顺序如下: ①先初始化父类和子类的静态成员。 ②父类非静态成员。 ③父类构造方法。 ④子类非静态成员...

网友评论

      本文标题:C#静态类和静态类成员

      本文链接:https://www.haomeiwen.com/subject/vgaquctx.html