C#构造函数,静态构造函数,私有构造函数详解


C#构造函数,静态构造函数,私有构造函数详解构造函数又称构造器:Constructor
静态构造函数: Static Constructor
私有构造函数: Private Constructor

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

静态构造函数具有以下特点:
1.静态构造函数既没有访问修饰符,也没有参数。
2.在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化 类。
3.无法直接调用静态构造函数。
4.在程序中,用户无法控制何时执行静态构造函数。

静态构造函数举列:
输出结果:
The static constructor invoked.
The Drive method invoked.
public class Bus
{
   // Static constructor:
   static Bus()
   {
      System.Console.WriteLine("The static constructor invoked.");
   }
   
   public static void Drive()
   {
      System.Console.WriteLine("The Drive method invoked.");
   }
}

class TestBus
{
   static void Main()
   {
      Bus.Drive();
   }
}


构造函数是在创建给定类型的对象时执行的 类方法。构造函数具有与类相同的名称,它通常初始化新对象的数据成员。
不带参数的构造函数称为“默认构造函数”。无论何时,只要使用 new 运算符实例化对象,并且不为 new 提供任何参数,就会调用默认构造函数。

public class Taxi
{
   public bool isInitialized;
   public Taxi()
   {
      isInitialized = true;
   }
}

class TestTaxi
{
   static void Main()
   {
      Taxi t = new Taxi();
      System.Console.WriteLine(t.isInitialized);
   }
}

私有构造函数是一种特殊的实例构造函数。它通常用在只包含静态成员的类中。如果类具有一个或多个私有构造函数而没有公共构造函数,则不允许其他类(除了嵌套类)创建该类的实例。例如:
声明空构造函数可阻止自动生成默认构造函数。注意,如果您不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数。但是,通常显式地使用 private 修饰符来清楚地表明该类不能被实例化。

当没有实例字段或实例方法(如 Math 类)时或者当调用方法以获得类的实例时,私有构造函数可用于阻止创建类的实例。如果类中的所有方法都是静态的,可考虑使整个类成为静态的。

class NLog
{
   // Private Constructor:
   private NLog() { }
   
   public static double e = System.Math.E; //2.71828...
}
public class Counter
{
   private Counter() { }
   public static int currentCount;
   public static int IncrementCount()
   {
      return ++currentCount;
   }
}

class TestCounter
{
   static void Main()
   {
      Counter.currentCount = 100;
      Counter.IncrementCount();
      System.Console.WriteLine("New count: {0}", Counter.currentCount);
   }
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:C#使用DataBindings属性绑定不同类型的数据源
下一篇:C/S开发框架权限扩展与定制按钮功能详细设计
评论列表

发表评论

评论内容
昵称:
关联文章

C#构造函数,静态构造函数私有构造函数详解
C#.Net 静态构造器使用详解
C#构造函数构造方法)
C#.Net窗体多重继承构造器及Load事件执行顺序详解
未找到类型“CSFrameworkV5.Models.dt_XXXXXX”上的构造函数
Activator.CreateInstance 使用指定类型的默认构造函数来创建该类型的实例
C#调用C++编译的DLL详解
C#方法重载(函数重载)
C# WebService代理类详解
VUE生命周期DOM对象方法、回调函数和属性详解
C#深入剖析事件(C# Event详解)
C#中Math函数简介,c# math
[转帖]C#如何调用非托管函数(三)-实现回调函数
C#委托(Delegate)事件(Event)应用详解 (原)
C#.Net反射(Reflaction)技术实例详解
C# WebService异步处理/异步调用详解
[转帖]C#如何调用非托管函数(一)
C#用HOOK函数自动关闭IE广告窗口
CSFramework.AutoUpgrader 发布命令升级包出错:InvalidOperationException使用 XmlInclude 或 SoapInclude 特性静态指定非已知的类型
C#.NET RESTFul API详解

热门标签
.NET5 .NET6 .NET7 APP Auth-软件授权注册系统 Axios B/S B/S开发框架 Bug Bug记录 C#加密解密 C#源码 C/S CHATGPT CMS系统 CodeGenerator CSFramework.DB CSFramework.EF CSFrameworkV1学习版 CSFrameworkV2标准版 CSFrameworkV3高级版 CSFrameworkV4企业版 CSFrameworkV5旗舰版 CSFrameworkV6.0 DAL数据访问层 Database datalock DbFramework Demo教学 Demo下载 DevExpress教程 DOM EF框架 Element-UI EntityFramework ERP ES6 Excel FastReport GIT HR IDatabase IIS JavaScript LINQ MES MiniFramework MIS NavBarControl Node.JS NPM OMS ORM PaaS POS Promise API Redis SAP SEO SQL SQLConnector TMS系统 Token令牌 VS2022 VSCode VUE WCF WebApi WebApi NETCore WebApi框架 WEB开发框架 Windows服务 Winform 开发框架 Winform 开发平台 WinFramework Workflow工作流 Workflow流程引擎 版本区别 报表 踩坑日记 操作手册 代码生成器 迭代开发记录 基础资料窗体 架构设计 角色权限 开发sce 开发技巧 开发教程 开发框架 开发平台 开发指南 客户案例 快速搭站系统 快速开发平台 秘钥 密钥 权限设计 软件报价 软件测试报告 软件简介 软件开发框架 软件开发平台 软件开发文档 软件体系架构 软件下载 软著证书 三层架构 设计模式 生成代码 实用小技巧 收钱音箱 数据锁 数据同步 微信小程序 未解决问题 文档下载 喜鹊ERP 喜鹊软件 系统对接 详细设计说明书 行政区域数据库 需求分析 疑难杂症 蝇量级框架 蝇量框架 用户管理 用户开发手册 用户控件 在线支付 纸箱ERP 智能语音收款机 自定义窗体 自定义组件 自动升级程序