首页 > 其他分享 >类的执⾏顺序?

类的执⾏顺序?

时间:2024-09-11 19:20:08浏览次数:14  
标签:顺序 静态 调用 析构 MyClass 执行 构造函数

在C#中,类的执行顺序取决于你如何组织和调用代码。以下是类中代码执行的一般顺序:

  1. 静态构造函数

    • 如果类包含静态构造函数,它将在类首次被引用时执行,且仅执行一次。

    • 静态构造函数常用于初始化静态成员。

  2. 实例构造函数

    • 当创建类的实例时,实例构造函数将被调用。

    • 如果类继承自另一个类,将首先调用基类的构造函数(除非显式地调用 base())。

  3. 字段初始化

    • 类字段的初始化(包括自动属性的隐式字段)在构造函数执行之前进行。

  4. 构造函数体

    • 在字段初始化之后,构造函数体中的代码将被执行。

  5. 方法调用

    • 在对象创建后,可以调用其实例方法。

    • 如果方法中包含对其他方法的调用,将按照调用顺序执行。

  6. 属性访问

    • 属性的getter和setter在访问属性值或赋值时执行。

  7. 索引器

    • 索引器在通过索引访问元素时执行。

  8. 析构函数

    • 当对象不再被引用,且垃圾回收器回收对象时,析构函数将被调用。

    • 析构函数也称为终结器(Finalizer),它在对象被垃圾回收之前执行。

  9. 静态析构函数

    • 类的静态成员在应用程序域卸载时被清理,如果类包含静态析构函数,它将在静态成员被清理前执行。

在实际应用程序中,代码的执行顺序通常由程序的入口点(如 Main 方法)决定,然后按照方法调用和对象创建的顺序进行。例如:

class MyClass
{
    static MyClass()
    {
        // 静态构造函数,类首次被引用时执行
    }
​
    MyClass()
    {
        // 实例构造函数,创建对象时执行
    }
​
    ~MyClass()
    {
        // 析构函数,对象被垃圾回收时执行
    }
​
    void MyMethod()
    {
        // 实例方法,调用时执行
    }
​
    public int MyProperty { get; set; } // 属性访问
​
    public int this[int index] { get; set; } // 索引器访问
}
​
class Program
{
    static void Main(string[] args)
    {
        MyClass myObject = new MyClass(); // 构造函数
        myObject.MyMethod(); // 方法调用
        var value = myObject.MyProperty; // 属性访问
        var indexedValue = myObject[0]; // 索引器访问
    }
}

在这个例子中,MyClass 的静态构造函数首先被执行,然后是实例构造函数,接着是方法调用、属性访问和索引器访问。最后,当 myObject 不再被引用时,它的析构函数将被执行。如果 MyClass 包含静态成员,那么静态析构函数将在应用程序域卸载时执行。

标签:顺序,静态,调用,析构,MyClass,执行,构造函数
From: https://blog.csdn.net/2401_86430346/article/details/142148154

相关文章

  • Java中的线程优先级与调度:如何有效管理线程的执行顺序
    Java中的线程优先级与调度:如何有效管理线程的执行顺序大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java中,线程的优先级和调度策略对于高效管理线程执行顺序至关重要。通过合理地设置线程优先级和调度策略,可以有效地优化应用的性能和响应时间。本......
  • SQL执行顺序和逻辑
    SQL执行顺序和逻辑MySQL的执行顺序:  (9)SELECT  (6)SUM(聚合函数)  (10)DISTINCT<select_list>  (1)FROM<left_table>  (3)<join_type>JOIN<right_table>  (2)ON<join_condition>  (4)WHERE<where_condition>  (5)GROUP......
  • 顺序表之创建,判满,插入,输出
    文章目录......
  • 数据结构基础讲解(一)——线性表之顺序表专项练习
     本文数据结构讲解参考书目:通过网盘分享的文件:数据结构 C语言版.pdf链接:https://pan.baidu.com/s/159y_QTbXqpMhNCNP_Fls9g?pwd=ze8e提取码:ze8e目录前言一.线性表的定义二.线性表的基本操作三.线性表的顺序存储和表示四.顺序表中基本操作的实现1.顺序表......
  • C语言实现顺序表
    顺序表前言一、顺序表结构二、顺序表实现1.初始化和销毁2.打印和扩容3.插入和删除4.查找5.测试三、优点和缺点优点缺点总结每文推荐前言顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素......
  • 信息学奥赛初赛天天练-85-NOIP2014普及组-基础题4-链表、随机存取、顺序存取、二分查
    信息学奥赛初赛天天练-85-NOIP2014普及组-基础题4-链表、随机存取、顺序存取、二分查找、二分比较、循环结构、图领奖PDF文档公众号回复关键字:202409071NOIP2014普及组基础题49下列选项中不属于图像格式的是()AJPEG格式BTXT格式CGIF格式DPNG格式1......
  • # 结构体成员定义的顺序也会影响结构体的大小,内存对齐,内存填充
    结构体成员定义的顺序也会影响结构体的大小,内存对齐,内存填充usingSystem;usingSystem.Runtime.InteropServices;structStrcutOne{publicintb;//4bytespublicbytea;//1publicbytec;//1//4+1+1+2(在填充两个2个字节)=8字节}struct......
  • 【数据结构】顺序表的应用
    基于动态顺序表实现通讯录功能要求1)至少能够存储100个⼈的通讯信息2)能够保存用户信息:名字、性别、年龄、电话、地址等3)增加联系人信息4)删除指定联系人5)查找制定联系人6)修改指定联系人7)显示联系人信息SeqList.h#pragmaonce#define_CRT_SECURE_NO_WARNINGS#incl......
  • C++顺序结构(1)
    1、C++程序的样子2、流输出流COUT<<3、一个实例及解析//001程序的基本结构 //单行注释/*多行注释 被注释过的内容不会被运行,可以用来做笔记。基本结构:1.头文件 程序包含某个头文件后,程序中的代码就可以使用这个头文件里的功能。2.命名空间3.主函数 类似Scr......
  • onShow执行顺序以及和onHide的对比
    onshow的介绍onShow方法是在小程序启动或从后台进入前台时触发的方法。onShow方法的主要作用是监听用户的行为并做出相应的响应,比如在小程序启动时展示欢迎页、在用户进入小程序时更新数据等。开发者可以通过重写onShow方法来编写自己的业务逻辑。onshow的顺序进页面的话是......