C#中成员初始化顺序
http://blog.csdn.net/huangcailian/article/details/25958967
一、成员初始化整体顺序
二、对类型静态成员构造的大致过程
三、对类型实例成员构造的大致过程
四、同时有静态成员和实例成员的大致构造过程
五、说明
using System;
using System.Diagnostics;
using System.Text; class Test
{
class CTEST
{ }
class SINGLE_TON
{
public static float sfx = ; //
public static CTEST ot = new CTEST();//
private float fx = ;
static private double dx = 100.03;//
private string s = "hello";
//public static readonly SINGLE_TON Instance = new SINGLE_TON();//加上这句就比较特殊了,这里虽有构造操作,但必须等到所有成员初始完成后才会进行
public static int x;//
public string str;
protected int y = ;
public SINGLE_TON()
{
Console.WriteLine("private single_ton");
} //静态构造函数最会多只会被调用一次,在首次访问类的静态成员变量或生成类的实例时被调用。 static SINGLE_TON()
{
Console.WriteLine("static single_ton");
} public void dosth()
{
Console.WriteLine("do some thing");
}
}
static void Main()
{
//首次访问类的静态变量,编译器首先会对所有有初始值的静态变量进行赋值操作,如1和2,3处。
//然后调用静态构造函数。
//不会对非静态变量进行赋值。不过它们都有默认值,数值类型为0,引用类型为null
int x = SINGLE_TON.x;
// SINGLE_TON.Instance.dosth();
// SINGLE_TON.Instance.dosth();
// SINGLE_TON.Instance.dosth(); //生成类实例时,编译器首先会对所有有初始值的静态变量进行赋值操作,如1和2,3处。
//然后调用静态构造函数。
//然后才对有初始值的非静态变量进行赋值。
//然后调用普通构造函数。
SINGLE_TON sg = new SINGLE_TON();
} //输出结果:
// private single_ton
// static single_ton
// do some thing
// do some thing
// do some thing }
C#中成员初始化顺序的更多相关文章
- Java中的成员初始化顺序和内存分配过程
Java中的成员初始化顺序和内存分配过程 原帖是这样描述的: http://java.dzone.com/articles/java-object-initialization?utm_source= ...
- Java中的初始化顺序(静态成员、静态初始化块,普通成员、普通初始化块、构造函数)
本文链接 http://blog.csdn.net/xiaodongrush/article/details/29170099 參考文章 http://my.oschina.net/le ...
- C++成员初始化顺序
#include <iostream> using namespace std; int seti() {cout << "seti" << e ...
- [java] java中的初始化顺序
先看程序: package init_cls; class A{ {System.out.println("i am in the class A!");} static { Sy ...
- java类的成员初始化顺序和初始化块知识
java类的成员初始化顺序和初始化块知识 转自:http://blog.csdn.net/lgfeng218/article/details/7606735 属性.方法.构造方法和自由块都是类中的成员 ...
- Java类继承关系中的初始化顺序
Java类初始化的顺序经常让人犯迷糊,现在本文尝试着从JVM的角度,对Java非继承和继承关系中类的初始化顺序进行试验,尝试给出JVM角度的解释. 非继承关系中的初始化顺序 对于非继承关系,主类Ini ...
- Java类成员初始化顺序
类中包含7中成员:1.静态变量 static2.final静态常量 final static3.静态代码块 static{} //多个代码块顺序执行 4.普通变量5.普通代码块 {} //多个代码 ...
- Java类的成员初始化顺序
Java类的成员初始化顺序 2017-06-01 代码: public class InitializeSequence { public static void main(String[] args ...
- C++中类成员变量在初始化列表中的初始化顺序
引子:我们知道,C++中类成员变量的初始化顺序与其在类中的声明顺序是有关的. 先看代码: class TestClass1 { public: TestClass1() { cout << ...
随机推荐
- swift基础一
// swift中导入类库使用import,不再使用<>和"" import Foundation // 输出 print("Hello, World!&qu ...
- 【原】visual studio添加现有文件夹的方法
由于使用版本管理器协调工作,有时同事就直接上传文件夹了,但右键添加现有项时不能添加文件夹的. 在工具栏"项目"下面有个"显示所有文件",选择这个,整个工程的文件 ...
- Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect
本节要点:红色标记 需要记下来 1 NSRange typedef struct _NSRange { NSUInteger location; NSUInteger length ...
- linux命令之 用户和群组
一.保存用户信息的文件 1 /etc/passwd root:x:::root:/root:/bin/bash pwftp:x::::/alidata/www/wwwroot/:/sbin/nolog ...
- Xcode模拟器和真机生成的日志查看(转载)
在进行实际代码开发的过程中,我们会生成一些plist文件,但是如何在调试过程中查看这些plist文件是否被成功生成以及生成的内容是否正确? 如果查看模拟器生成的日志和真机生成的日志到底如何查看? DE ...
- CIO的职责、条件及价值
从ERP项目的成功率中,我们可以知道企业的信息化道路是漫长的:从企业对ERP的投资热情中,我们可以知道企业信息化已经是企业的生死之战.对于信息化的成功,许多专家.学者都在强调“一把手”工程,ISO要“ ...
- CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
准备篇 1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dp ...
- 以前写的关于Linux C/C++的博客
以前在CU写的关于Linux C/C++的博客 http://blog.chinaunix.net/uid/25909722/cid-24318-list-1.html
- ASP.NET5 MVC6入门教学之一(自己动手)
等待微软开源大动作已经好几年了,终于ASP.NET 5发布了.今天给新手们写一个简单地教程,教你认识一下ASP.NET5 MVC6 1.安装kvm 首先,你需要以管理员权限打开cmd,执行如下的脚本: ...
- 安装SQL Server2008,要重启机器,解决办法
安装SQL Server2008时,总提示有挂起,要重启机器:重启之后还是有相应的提示,该怎么办呢? 其实只要删除一个注册表项就可以了: 1. 打开注册表编辑器 开始菜单—>运行->re ...