LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# 深入理解类(实例构造函数)

admin
2025年5月19日 17:27 本文热度 45

实例构造函数

实例构造函数是一个特殊的方法,它在创建类的每个新实例时执行。

  • 构造函数用于初始化类实例的状态。
  • 如果希望能从类的外部创建类的实例,需要将构造函数声明为public。 图7-2阐述了构造函数的语法。除了下面这几点,构造函数看起来很像类声明中的其他方法。
  • 构造函数的名称和类名相同。
  • 构造函数不能有返回值。

例如,下面的类使用构造函数初始化其字段。本例中,它有一个名为TimeOfInstantiation 的字段被初始化为当前的日期和时间。

class MyClass
{
    DateTime TimeOfInstantiation;  //字段

    ...
    pubic MyClass()                //构造函数
    {
        TimeOfInstantiation =DateTime.Now;   //初始化字段
    }
    ...
}

说明 在学完静态属性那一节后,我们可以仔细看看初始化TimeOfInstantiation那一行。 DateTime类(实际上它是一个结构,但由于还没介绍结构,你可以把它先当成类)是从 BCL中引入的,Now是类DateTime的静态属性。Now属性创建了一个新的DateTime类的 实例,将其初始化为系统时钟中的当前日期和时间,并返回新DateTime实例的引用。

带参数的构造函数

构造函数在下列方面和其他方法相似。

  • 构造函数可以带参数。参数的语法和其他方法完全相同。
  • 构造函数可以被重载。 在使用创建对象表达式创建类的新实例时,要使用new运算符,后面跟着类的某个构造函数。 new运算符使用该构造函数创建类的实例。 例如,在下面的代码中,Class1有3个构造函数:一个不带参数,一个带int参数,一个带 string参数。Main使用各个构造函数分别创建实例。
class Class1
{
    int Id;
    string Name;

    public Class1(){Id=28;Name="Nemo";}     //构造函数0
    public Class1() {ID=val;nameof="Nemo";} //构造函数1
    public Class1(String name){Name=name;}  //构造函数2

    public void SoundOff()
    {
        Console.WriteLine($"Name{Name},Id{Id}");
    }
}

class Program
{
    static void Main()
    {
        Class1 a=new Class1();       //调用构造函数0
               b=new Class1(7);      //调用构造函数1
               c=new Class1("Bill"); //调用构造函数2

        a.SoundOff();
        b.SoundOff();
        c.SoundOff();
    }
}

默认构造函数

如果在类的声明中没有显式地提供实例构造函数,那么编译器会提供一个隐式的默认构造函 数,它有以下特征。

  • 没有参数。
  • 方法体为空。

如果你为类声明了任何构造函数,那么编译器将不会为该类定义默认构造函数。 例如,下面代码中的Class2声明了两个构造函数。

  • 因为已经至少有一个显式定义的构造函数,所以编译器不会创建额外的构造函数。
  • 在Main中,试图使用不带参数的构造函数创建新的实例。因为没有无参数的构造函数, 所以编译器会产生一条错误消息。
class Class2
{
    publicClass2(int Value) {...}  //构造函数0
    publicClass2(String Value){...} //构造函数1
}

class Program
{
    static void Main()
    {
        Class2 a=new Class2();   //错误!没有无参数的构造函数
        ...
    }
}

说明 可以像对其他成员那样,对实例构造函数设置访问修饰符。可以将构造函数声明为public, 这样在类的外部也能创建类的实例。也可以创建private构造函数,这样在类外部就不 能调用该构造函数,但在类内部可以。


该文章在 2025/5/21 9:28:24 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved