构造函数的用法学习笔记

本文详细介绍了C#中的构造函数类型及其用法,包括公共、私有、保护和静态构造函数的特点与应用场景。例如,私有构造函数常用于实现单例模式,而静态构造函数则用于初始化类。

构造函数的用法学习笔记:

l         公共(public)构造函数

C#实例形式:

Class MyClass()

{

       Public MyClass(){}

}

l         私有(private)构造函数

如果一个类有一个或多个私有构造函数而没有公共构造函数,则不允许其他类创建该类的实例。一般情况下类默认有一个公共的构造函数,如果希望类不能被其他类实例化,可以声明空构造函数来阻止自动生产默认构造函数。私有构造函数一般应用于单件模式(Singleton)中。

Class MyClass

{

       Private MyClass(){}

       Private MyClass _objMyClass;

       Public MyClass Instance()

       {

              If(_objMyClass ==null){_objMyClass = new MyClass()}

              Return _objMyClass;

}

}

l         保护(protected)构造函数

受保护的构造函数使类可以被子类实例化。而其他非子类的类不可以创建该类的实例。

ATest Test的子类。Test类无法使用Test objNews = New Test() 来实例化(无法通过编译)

<o:p> </o:p>

public class MyClass<o:p></o:p>

{<o:p></o:p>

    public static void <st1:place w:st="on">Main</st1:place>()<o:p></o:p>

    {<o:p></o:p>

       ATest obj = new ATest();<o:p></o:p>

       RL();<o:p></o:p>

    }<o:p></o:p>

}<o:p></o:p>

public class Test<o:p></o:p>

{<o:p></o:p>

    protected Test()<o:p></o:p>

    {<o:p></o:p>

     MyClass.WL("This is protected");<o:p></o:p>

    }<o:p></o:p>

}<o:p></o:p>

<o:p> </o:p>

public class ATest:Test<o:p></o:p>

{<o:p></o:p>

    public ATest()<o:p></o:p>

    {<o:p></o:p>

     MyClass.WL("This is ATest");<o:p></o:p>

    }<o:p></o:p>

}

l         静态(static)构造函数:

静态构造函数用来初始化类。在创建第1个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。静态构造函数即没有访问修饰符,也没有参数。

<o:p> </o:p>

using System;<o:p></o:p>

using System.Collections;<o:p></o:p>

<o:p> </o:p>

public class MyClass<o:p></o:p>

{<o:p></o:p>

    <o:p></o:p>

    public MyClass()<o:p></o:p>

    {<o:p></o:p>

       System.Console.WriteLine("New Instance Created");<o:p></o:p>

    }<o:p></o:p>

    <o:p></o:p>

    static MyClass()<o:p></o:p>

    {<o:p></o:p>

       System.Console.WriteLine("Static Instance Created");<o:p></o:p>

    }<o:p></o:p>

    <o:p></o:p>

    public static void Hello()<o:p></o:p>

    {<o:p></o:p>

       WL("Hellow");<o:p></o:p>

    }<o:p></o:p>

    <o:p></o:p>

    public static void <st1:place w:st="on">Main</st1:place>()<o:p></o:p>

    {<o:p></o:p>

       MyClass.Hello();<o:p></o:p>

       MyClass ms = new MyClass();<o:p></o:p>

       RL();<o:p></o:p>

    }<o:p></o:p>

    <o:p></o:p>

    <o:p></o:p>

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值