【转】C#父类与子类的静态成员变量、实例成员变量、构造函数的执行顺序
原文地址:http://www.xuebuyuan.com/1092603.html
Win7+VS2010测试的结果如下:
①子类静态成员变量
②子类静态构造函数
③子类实例成员变量
④父类静态成员变量
⑤父类静态构造函数
⑥父类实例成员变量
⑦父类构造函数
⑧子类构造函数
规则可以总结为:
- 子类成员变量先于父类成员变量
- 静态成员变量先于实例变量
- 类成员变量初始化先于类的构造函数
- 父类构造函数先于子类构造函数
测试的代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace 静态实例构造
{
class showInfo
{
public showInfo(string Info)
{
Console.WriteLine(Info);
}
}
class BaseClass
{
public static showInfo bssI = new showInfo("父类静态成员变量");
public showInfo bisI = new showInfo("父类实例成员变量");
static BaseClass()
{
showInfo bscsI = new showInfo("父类静态构造函数");
}
public BaseClass()
{
showInfo bcsI = new showInfo("父类构造函数");
}
}
class DeriveClass : BaseClass
{
public static showInfo dssI = new showInfo("子类静态成员变量");
public showInfo disI = new showInfo("子类实例成员变量");
static DeriveClass()
{
showInfo dscsI = new showInfo("子类静态构造函数");
}
public DeriveClass()
{
showInfo dcsI = new showInfo("子类构造函数");
}
}
class Program
{
static void Main(string[] args)
{
//各个对象的初始化顺序如下:
//①子类静态成员变量
//②子类静态构造函数
//③子类实例成员变量
//④父类静态成员变量
//⑤父类静态构造函数
//⑥父类实例成员变量
//⑦父类构造函数
//⑧子类构造函数
DeriveClass dc = new DeriveClass();
Console.ReadKey();
}
}
}
【转】C#父类与子类的静态成员变量、实例成员变量、构造函数的执行顺序的更多相关文章
- C#基础知识之父子类,实例、静态成员变量,构造函数的执行顺序(经典示例)
父子类.示例.静态成员变量.构造函数的概念的基础理解完全可以利用下面的示例诠释,非常经典,直接上代码: public class ShowInfo { public ShowInfo(string i ...
- C# 父子类_实例_静态成员变量_构造函数的执行顺序
今天去面试的时候被一道题问得一点脾气都没有,今天特地来研究下. 子类成员变量,子类静态成员变量,子类构造函数,父类成员变量,父类静态成员变量,父类构造函数的执行顺序. 现在贴上从另外一个.net程序员 ...
- Java:【面向对象:类的定义,静态变量,成员变量,构造函数,封装与私有,this】
本文内容: 什么是面对对象 类的定义与对象实例化 成员变量 成员变量的有效范围 成员变量的赋值 静态变量.方法与实例变量.方法 构造函数 封装与私有 this关键字 注:函数和方法是一样东西.[由于我 ...
- Objective-C 基本语法:实例变量与成员变量的区别.l........实例方法和类方法区别
http://leopard168.blog.163.com/blog/static/16847184420138153296930/ http://blog.csdn.net/thdxs/artic ...
- 函数, arguments对象, eval,静态成员和实例成员
函数创建: 3种创建函数的方式 * 直接声明函数 function funcName(/*参数列表*/){ //函数体 } * 函数表达式 var funcName = function(){ ...
- Java静态成员与实例成员
Java静态成员与实例成员 类是一种类型,类中定义的所有成员都归此的对象所有,这些成员成为实例成员:而某些成员想要被所有类的所有对象共享,此时的成员不属于某个对象,而是属于整个类,这些成员成为静态成员 ...
- C++中类的静态成员与实例成员的区别
C++中类的静态成员与实例成员的区别 1.有static修饰的成员变量或成员函数称为静态成员. 2.在内存中,类的静态数据成员占有一块特定的内存空间,被该类的所有实例(对象)共享.而同一个类的不同对象 ...
- OC基础:实例变量和成员变量的区别 分类: ios学习 OC 2015-06-14 17:59 16人阅读 评论(0) 收藏
摘要: Objective-C 引入了"实例变量"的概念,但同时, 也经常出现 "成员变量"的声音. 到底什么是实例变量,什么是成员变量,二者的区别是什么呢 ...
- JS高级. 03 混入式继承/原型继承/经典继承、拓展内置对象、原型链、创建函数的方式、arguments、eval、静态成员、实例成员、instanceof/是否在同一个原型链
继承:当前对象没有的属性和方法,别人有,拿来给自己用,就是继承 1 混入式继承 var I={ }; var obj = { name: 'jack', age:18, sayGoodbye : fu ...
随机推荐
- 我也说说Emacs吧(5) - 基本编辑操作
基本编辑操作 进入编辑模式 标准的emacs用户是遇不到这一节的,因为默认就可以编辑.但是spacemacs用户需要先学习一下强大的vi的模式切换功能了. vi的一个重要特点就是命令特别多,所以一旦学 ...
- 开源一款资源分享与下载工具 —— 电驴(eMule)
这里分享一款资源分享与下载工具--电驴,其实严格来说,应该叫电骡,这是我维护的版本,eMuleVeryCD版本,VeryCD是一个不错的资源分享网站:http://www.verycd.com/.大概 ...
- [Linux] 输出文件的指定行
1.获取第k行(以k=10为例) 要注意的是,如果文件包含内容不足10行,应该不输出. # Read from the file file.txt and output the tenth line ...
- vue中父子组件值的传递
父传子 父组件:
- 【集成学习】lightgbm调参案例
lightgbm使用leaf_wise tree生长策略,leaf_wise_tree的优点是收敛速度快,缺点是容易过拟合. # lightgbm关键参数 # lightgbm调参方法cv 代码git ...
- 自己整合的SSM框架 maven坐标大全
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- erl_0014 《硝烟中的erlang》 读书笔记001 “绪论”
1.大家听说Erlang,往往是因为其对高并发的良好支持.其实,Erlang的核心特征是容错,从某种程度上讲,并发只是容错这个约束下的一个副产品.容错是Erlang语言的DNA,也是和其他所有编程语言 ...
- hiho 1612
emmmmm?A不了?90分是什么鬼 #include<cstdio> #include<cstdlib> #include<vector> #include< ...
- LintCode题解
JAVA代码:https://github.com/tw1996/LintCode 持续更新
- 《DSP using MATLAB》示例Example 8.5