当前位置: 首页 > news >正文

C#构造函数

在C#中,构造函数就是与类具有相同名称的成员函数,通常使用类中的构造函数来初始化类的成员属性。C#中的构造函数有三种:

第一种:实例构造函数。

当使用new关键字创建类的对象时,可以使用实例构造函数来初始化和创建类中的任意成员属性。下面演示一个名为Man的类,以及类中的实例构造函数:

 

只要创建Man的对象,就会调用类中的实例构造函数,在实例化对象时将具体的值传递给类中的构造函数即可,如下图:

 

第二种:静态构造函数

静态构造函数用于初始化类中的静态数据或执行仅需一次的特定操作,静态构造函数将在创建第一个实例或引用类中的静态成员之前自动调用。

静态构造函数具有以下特点:

.静态构造函数不使用访问权限修饰符修饰或不具有参数;

.类或结构体中只能具有一个静态构造函数;

.静态构造函数不能继承或重载;

.静态构造函数不能直接调用,仅可以由公共语言运行时调用;

.用户无法控制程序中静态构造函数的执行时间;

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

.静态构造函数会在实力构造函数之前运行;

实例如下:

 

在执行上面程序时会先执行num=0,然后再执行num=2,最后再执行num=1,这就是静态构造函数。

第三种:私有构造函数

私有构造函数是一种特殊的实例构造函数,通常只包含静态成员的类中。如果类中只有一个或多个私有构造函数而没有公共构造函数的话,那么其他类无法创建该类的实例,下面通过一个实例来展示私有构造函数的使用:

 

如果取消 Main 函数中注释的Student stu = new Student();,程序就会出错,因为 Student 类的构造函数是私有静态函数,受其保护级别的限制不能访问。

相关文章:

  • 【Node.js+koa--后端管理系统】用户注册接口设计 | 连接Mysql数据库 | 校验注册权限
  • 30岁年薪28W,我还是没顶住压力跳槽了····
  • boost之string_ref
  • Java实现拼图小游戏(1)—— JFrame的认识及界面搭建
  • Java成品网站推荐 毕设从这起步就够了
  • P4 开发实践 — NG-SDN Tutorial — Exercise 5: IPv6 Routing
  • Android Studio Dolphin | 2021.3.1 发布,快来看看有什么更新吧~
  • 常见软件---SQLite3的C语言下使用
  • 嵌入式C语言(入门必看)
  • 神经网络解决优化问题,神经网络 样本不平衡
  • java 使用curl 超时无返回结果问题 有请求 无响应 卡死问题
  • BERT知识蒸馏Distilled BiLSTM
  • 启明智显分享|基于ESP32-S3方案的4寸86盒开发板快速开发及烧录
  • 浅谈地下污水处理厂电气特点和能效管理系统的实际应用
  • 【JavaScript】巩固JS开发中五个常用功能/案例(46-50)(牛客题解)
  • 【翻译】babel对TC39装饰器草案的实现
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 第十八天-企业应用架构模式-基本模式
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 树莓派 - 使用须知
  • 我的面试准备过程--容器(更新中)
  • 在weex里面使用chart图表
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 带你开发类似Pokemon Go的AR游戏
  • ​520就是要宠粉,你的心头书我买单
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #1015 : KMP算法
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $.each()与$(selector).each()
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (6)添加vue-cookie
  • (poj1.2.1)1970(筛选法模拟)
  • (七)理解angular中的module和injector,即依赖注入
  • (四)Controller接口控制器详解(三)
  • (转)一些感悟
  • (转)重识new
  • .bashrc在哪里,alias妙用
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .net2005怎么读string形的xml,不是xml文件。
  • .net打印*三角形
  • .NET连接MongoDB数据库实例教程
  • ::
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @property括号内属性讲解
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [C#][DevPress]事件委托的使用
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行
  • [CSS]中子元素在父元素中居中
  • [Interview]Java 面试宝典系列之 Java 多线程
  • [macOS] Mojave10.14 夜神安卓模拟器启动问题
  • [msg_msg] corCTF2021 -- fire_of_salvation
  • [NAND Flash 6.1] 怎么看时序图 | 从时序理解嵌入式 NAND Read 源码实现