C#执行顺序

C#程序的执行是从何处开始,到何处结束? 程序的执行会按照代码的顺序逐行进行,直到遇到控制流语句(如条件语句、循环语句)或函数调用。例如,条件语句可以根据条件的结果选择不同的执行路径,循环语句可以多次执行一段代码块,函数调用可以跳转到另一个方法执行。C#程序的执行过程可以从程序的入口点开始,一直到程序的结束点。编写C#程序时,需要注意程序的入口点和代码的执行顺序,以及控制流语句和函数调用对程序执行路径的影响。它是程序的起始点,是程序中第一个被执行的方法。方法开始,按照代码的顺序逐行执行,可以通过控制流语句和函数调用改变执行路径,最终执行到。 阅读详情

有同学写了以下代码,大家想想结果是怎样的?

 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4using System.Text;
 5
 6namespace MyTest
 7{
 8    class Program
 9    {
10        static void Main(string[] args)
11        {
12            C c = new C();
13
14            Console.ReadLine();
15        }

16    }

17
18    class A
19    {
20        public A()
21        {
22            Console.WriteLine("A");
23        }

24    }

25
26    class B
27    {
28        public B()
29        { 
30            Console.WriteLine("B");
31        }

32    }

33
34    class C: A
35    {
36        public C()
37        {
38            Console.WriteLine("C");            
39        }

40
41        B b = new B();
42    }

43}

呵呵,大家试试看,输出的结果是不是预料之外?

当两个类之间有继承关系时,第一次构造子类的实例时,是按照如下顺序进行的:

  1. 子类的静态成员初始化语句
  2. 子类的静态构造函数
  3. 子类的非静态成员初始化语句
  4. 父类的静态成员初始化语句
  5. 父类的静态构造函数
  6. 父类的非静态成员初始化语句 
  7. 父类的构造函数
  8. 子类的构造函数

为什么会这样呢?

事实上,出现上述顺序的原因是,在执行完子类的静态构造函数后(也就是第四步),程序会接着执行子类的构造函数,但是,此时,程序会先自动访问该构造函数继承的父类的构造函数(如果没有显式继承,那么就默认继承父类的默认构造函数,如果父类没有默认构造函数,那么会出现编译错误),而且,由于是第一次访问父类,因此会先运行静态成员初始化的代码和静态构造函数。

C#程序的执行顺序 在C#编程语言中,程序的执行顺序是非常重要的。了解程序的执行顺序可以帮助我们更好地理解代码的运行过程,并且更好地进行调试和优化。本文将详细介绍C#程序的执行顺序,并附上相应的代码示例和描述。通过了解C#程序的执行顺序,我们可以更好地编写和理解代码。希望本文对你有所帮助! 阅读详情

相关推荐

C#程序的执行是从Main方法开始到Main方法结束

总结起来,C#程序的执行是从Main方法开始,按照代码的编写顺序逐行执行,直到到达Main方法的末尾或遇到程序终止的语句。通过理解程序的执行过程,我们可以更好地编写和调试C#程序,实现所需的功能。在C#中,程序的执行是从一个特定的方法开始,通常是Main方法,然后按照代码的逐行顺序执行,直到到达Main方法的末尾或遇到程序终止的语句。需要注意的是,C#程序的执行过程是顺序的,按照代码的编写顺序逐行执行。在Main方法内部,可以调用其他方法,这样可以将代码逻辑进行模块化和重用,使程序更加清晰和易于维护。

2301_79366332的博客 513

浅析C#代码执行顺序之选择结构

选择结构是C#代码执行顺序之一,分为二分支结构(if语句)和多分支结构(switch语句)。if语句:if 语句的结构:if(条件1) {语句体1} else {语句体2} 解释:若满足条件1,则程序执行语句体1,否则执行语句体2!当然,else也可省略。即:简单的if结构,其写法如下:if(条件1) {语句体1} 还可多个if还可以结合使用,构成if的嵌套.if(条件1)...

weixin_33862188的博客 282

C语言的执行顺序与C#的执行顺序有什么区别

C语言中的语句按照它们在代码中的顺序执行,没有特殊的控制结构来改变执行顺序。执行顺序是计算机程序中非常重要的概念,它决定了代码中语句的执行顺序。本文将详细介绍C语言和C#语言的执行顺序,并提供相应的源代码示例。事件处理程序会根据事件的发生顺序执行。C语言采用顺序执行的方式,按照代码的编写顺序逐行执行。在C语言中,程序从main函数开始执行,按照编写的顺序逐行执行代码。上述代码中,程序从Main方法开始执行,当执行到Console.WriteLine方法时,会触发相应的事件,将"Hello, World!

PixelProX的博客 183

C#程序运行过程

第一部:进入static void Main()  第二部:运行static void Main() 中的Application.Run(new Form1());在这中间对窗体进行构造。       2.1 执行private System.ComponentModel.Container components = null;作用是Container 类是IContainer 接口的

☼ 2165

AI大模型驱动的智能座舱研发体系重构

AI大模型正重构智能座舱研发体系的核心逻辑,需以场景认知为起点、混合架构为支柱、AI原生生态为落脚点。未来,研发体系需持续融合认知科学、边缘计算与开放生态理论,推动座舱从“工具”进化为“伙伴”。

我的专栏 1916

【多元统计分析】均值向量和协方差阵的检验——spss上机实验

均值向量和协方差阵的检验——spss上机实验 #参考书目为《多元统计分析》(第五版)——何晓群.中国人民大学出版社 #如有错误,请指正!谢谢~ #关注公众号搜索同名文章获取数据~ 习题2.3 现选取内蒙古、广西、贵州、云南、西藏、宁夏、新疆、甘肃和青海等9个内陆边远省区。选取人均GDP、第三产业比重、人均消费支出、人口自然增长率及文盲半文盲人口占15岁以上人口的比例等5项能较好的说明各地区社会经济发展水平的指标,验证边远及少数民族聚居区的社会经济发展水平与全国平均水平间有无显著差异。 将输入导入spss

suansuannainaizi的博客 3万+

c#中类的执行顺序

不考虑继承的话,类的执行顺序如下: 1静态字段 2静态构造函数(类被实例化的时候或者调用静态成员的时候调用静态构造,且只调用一次,注意:只是在第一次进入类的时候才会调用,并且所有的静态都是在第一次进入的时候调用,第二次不会 ) 3实例字段 4实例构造 考虑继承的话,类的执行顺序如下: 1子类静态成员 2子类静态构造 3子类实例成员 4父类静态成员 5父类静态构造 6父类实例成员 7父类实例构造 8子类实例构造 有如下代码 /// <summary> /// 类的执行顺序(不考虑继

weixin_43742796的博客 2607

openwrt编译及第一个安装包教程

Date: 2017.03.14 Made:SuperDeverloper Email: na1206@live.com Target: For mt7688 based board说明:本人在学习过程中走了不少弯路,希望本文档能为后来者提供便利。欢迎复制和使用本文档。本文档记录了搭建openwrt编译环境以及快速创建ipk包(openwrt上的安装程序)。本文档在实际应用中做过几次修改,以帮

SuperDevloper的博客 1万+

c# task添加顺序_C# 的执行顺序

为了搞清.net的执行顺序我们做如下准备1,做3个任务,分别往3个文本文件写入100万行时间戳,每个任务根据计算大概需要400+毫秒。DateTime dt1;private void dowork1(){using (System.IO.StreamWriter writer = File.AppendText("newfile1.txt")){for (int i = 0; i < 10...

weixin_39575565的博客 1103

手把手教你用Cadence仿真12bit SAR ADC:从电路图到FFT频谱分析(含Simc 18mmrf工艺文件)

本文详细介绍了使用Cadence仿真12bit SAR ADC的全流程,包括电路搭建、仿真环境配置、瞬态仿真优化及FFT频谱分析。基于Simc 18mmrf工艺文件,提供从电路图到性能验证的实战指南,特别分享工程实践中的排错技巧和优化策略,帮助工程师高效完成ADC设计验证。

weixin_30832405的博客 405

简单VASP计算INCAR设置(结构优化OPT、静态自洽SCF、能带BAND、态密度DOS)

改变 K 点、NBANDS、晶胞、ENCUT、POTCAR、自旋或 SOC 后要检查兼容性。该参数不参与物理计算,因此不会改变总能量、受力、应力或最终结构。如果研究的是金属、磁性材料、表面、二维材料、分子、缺陷、DFT+U、杂化泛函或强自旋轨道耦合体系,部分参数必须调整。适合已经用 IBRION = 2 预优化、力较小、自由度较多的结构。在 IBRION = 1、2、3 中,它只是内部缩放因子。“不能修改”不是程序禁止修改,而是修改后会改变理论模型、数值精度或能量参考,使结果不能直接比较。

weixin_51420530的博客 125

c#线程顺序执行

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Threading;namespace 线程同步{ class Program { static int num =...

diaohuyi6830的博客 941

PyTorch实战(12)——图神经网络(Graph Neural Network,GNN)

在本节中,我们首先简要概述了图神经网络 (Graph Neural Network, GNN) 的核心概念与应用,GNN 通过构建计算图分层聚合节点特征,解决了传统神经网络处理图数据时的四大局限:信息深度不足、节点顺序敏感、动态扩展困难和特征稀疏性问题。了解了不同类型的图学习任务(包括节点级、边级和图级三大类)。接着我们研究了几种流行的 GNN 模型,包括:GCN (通过权重共享实现图卷积)、GAT (引入注意力机制区分邻居重要性)和 GraphSAGE (采用随机采样应对大规模图)。

盼小辉丶的博客 3672

C#代码执行顺序探讨

原文地址:http://bbs.youkuaiyun.com/topics/220080755   通常我们设计一个C#应用程序,无需考虑过多就可以让我们的程序正确的跑起来。但是,当我们的设计日益复杂时,稍不小心就会因为不清楚C#代码的执行顺序以及规则而使我们陷入困境。先来个小demo,检查一下你对它了解多少吧。  1 public class MainTest  2 {  3     static void

Tomorrow Never Comes 3486

深度强化学习调参技巧:以DQN、DDPG、TD3、PPO、SAC等算法为例

深度强化学习调参技巧:以D3QN、DDPG、TD3、PPO、SAC算法为例

丨汀、的博客 3444

Python 爬虫实战:抓取百科网站上某个词条的详细信息

百科网站(如维基百科)为用户提供了丰富的知识内容,涵盖了从历史、文化到科技等几乎所有领域的知识。对于需要大量数据进行分析、研究或机器学习项目的开发者而言,抓取这些网站的数据显得尤为重要。通过编写一个 Python 爬虫,我们能够轻松地抓取百科网站上的某个词条及其详细信息,从而获取并整理这些知识内容。本篇博客将深入介绍如何通过 Python 编写爬虫来抓取百科网站(如维基百科)的某个词条的详细信息,包括标题、正文内容、参考文献等。requests:发送 HTTP 请求,获取页面内容。

2201_76125261的博客 1670

C#中Page事件执行顺序

C#中Page执行顺序:OnPreInit()、OnInit()…… using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.Web

zhaowei303的专栏 2657

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C#类执行顺序

原地址:http://www.soaspx.com/dotnet/csharp/csharp_20110325_7419.html 子类的静态成员子类的静态构造函数父类的静态成员父类的静态构造函数父类的构造函数子类的构造函数每一个类静态成员只初始化一次。 原文地址:http://zhidao.baidu.com/question/71750487.html C# 类的初始化顺序 继承类的s

abjectionyouth的专栏 1586

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C#中类成员的执行顺序

先进行细分: 类的成员分为:字段、属性、方法、构造方法 成员的修饰符:静态成员、实例成员 层次结构:父类、子类 先不考虑继承关系,执行顺序为: 静态字段静态构造方法实例字段实例构造方法属性和方法是在调用的时候才执行,这里就不考虑了。如何理解上面的执行过程?假如让我来设计执行过程,我该如何考虑,依据是什么? 首先,静态的东西是大家共享的,也就是相同的。应该先关心共享的东西,再关系个人的...

weixin_34162629的博客 112

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C# 实例化的执行顺序(转)

首先进行细分1.类的成员分为:字段,属性,方法,构造函数2.成员修饰符:静态成员,实例成员不考虑继承的关系执行顺序为:1.静态字段2.静态构造方法3.实例字段4.实例构造方法其中 属性和方法只有在调用的时候才执行。下面是一段代码例子: class Test { public static int temp; ...

weixin_30699831的博客 397

C#面:C# 类的执行顺序?

需要注意的是,以上步骤是一般情况下的执行顺序,但在继承和派生类的情况下,执行顺序可能会有所不同。派生类的构造函数会在基类的构造函数执行完毕后被调用。执⾏顺序:⽗类,⼦类,静态块,静态字段,⾮静态块,⾮静态字段,构造器,⽅法。

那个那个鱼的博客 966

C#继承的执行顺序

自己对多态中构造函数、函数重载执行顺序和过程一直有些不理解,经过测试,对其中的运行顺序有了一定的了解,希望对初学者有些帮助。 eg1: public class A { public A() { Console.WriteLine('A'); } public vir...

anzhenji7632的博客 193

【C#】try-catch-finally语句的执行顺序,以及在发生异常时的执行顺序

【C#】try-catch-finally语句的执行顺序,以及在发生异常时的执行顺序

wangnaisheng的专栏 1966

c# Parallel.For 并行编程 执行顺序测试

因为有个for 实际执行结果尽管是按照for里边的顺序执行,但处理器让哪个分线程先执行,谁先处理完就不一定了. 对于要求结果需要先后顺序的,比如对text内容的操作, 用并行Parallel.For 操作,不做进一步优化处理,那结果就不是想要的了,还要l用它的并行的功能所以要多程序进行改进, 我使用的做法是初始化buffer list 把list数组的顺序定下来,在循环中,把对应的值顺序赋...

weixin_33971205的博客 903
上一篇: 好的.NET程序员应该知道什么
NETZHOU
博客等级 码龄24年 10粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值