如果没有为类显式地定义一个构造函数,则C#编译器会自动生成一个函数体为空的默认无参的实例构造函数。

构造函数主要用于创建类的实例对象。

当调用构造函数创建一个对象时,构造函数会为对象分配内存空间,并初始化类的成员。

构造函数分为实例构造函数和静态构造函数两种。

实例构造函数用于创建和初始化类的实例。使用new运算符创建对象的过程,其实就是在调用实例构造函数,来初始化类中所有实例成员。

实例构造函数可以进行方法重载。实现了方法重载,就可通过不同的方式来完成类的实例化。

可以对实例构造函数指定访问级别,即可以使用public、protected和private修饰符来修饰。(用public关键字修饰的构造函数,称为公共构造函数;用private关键字来修饰实例构造函数,称为私有构造函数)

然而不是任何一个函数都可以成为实例构造函数,实例构造函数必须满足一下两个条件:构造函数必须和类同名;构造函数不允许有返回类型

如果类只定义一个或多个私有构造函数,而没有其他公共构造函数,则其他类不能通过调用该类的私有构造函数类创建类的实例。

私有构造函数最典型的应用是设计模式中单例模式的实现。

除了实例构造函数之外,构造函数还包括静态构造函数。

静态构造函数用于初始化类中的静态成员,在创建第一个实例或引用任何静态成员之前,CLR都将自动调用静态构造函数。

与实例构造函数一样,要称为静态构造函数必须具有以下特点

静态构造函数不能使用任何访问修饰符

静态构造函数不能带有任何参数

静态构造函数只会执行一次

不能直接调用静态构造函数

在程序中,程序员无法控制执行静态函数的时机

最新文章

  1. [EF2]Sneak Preview: Persistence Ignorance and POCO in Entity Framework 4.0
  2. 关于linux服务器上搭建ftp服务的流程
  3. ubuntu16.04源码编译安装wine1.8.6安装不上引来的错误
  4. mybatis 控制台打印sql
  5. mysql5.6 通用二进制安装
  6. Js中 关于top、clientTop、scrollTop、offsetTop的用法
  7. ElasticSearch 的 聚合(Aggregations)
  8. ADO.NET- 基础总结及实例介绍
  9. sql的游标使用(转)
  10. BZOJ1528: [POI2005]sam-Toy Cars
  11. MyEclipse导入Maven项目报错 Plugin execution not covered by lifecycle configuration:
  12. BZOJ 2134: 单选错位( 期望 )
  13. Ubuntu下用NdisWrapper安装网卡驱动
  14. Text Justification 实现两端对齐功能
  15. mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)
  16. 【Java学习笔记之十四】Java中this用法小节
  17. 【转】globk中的控制文件
  18. HTML中鼠标滚轮事件onmousewheel处理
  19. 小知识点BeanUtils.copyProperties
  20. angularjs(显示和隐身) 依赖注入

热门文章

  1. FAT32文件格式示例解析
  2. zookeeper3.4.6配置实现自动清理日志【转】
  3. python3+selenium框架设计08-进一步实现POM
  4. requests库入门01-环境安装
  5. 【转】thread.sleep(0)与thread.sleep(1)的区别
  6. Git系列①之仓库管理互联网托管平台github.com的使用
  7. mysql:批量插入不同的UUID
  8. Ubuntu升级GCC到gcc4.8
  9. 业务侧有大量timeout请求超时日志
  10. redhat7.3安装yum源