特别的构造函数:构造函数的修饰

本文探讨了不同访问级别的构造函数在C#中的使用方式,包括仅允许内部实例化、仅通过特定方法实例化及要求子类必须调用基类构造函数等场景。
构造函数并不一定都是public的,以下的代码是不是另拟感到构造函数的奇特阿?

1None.gifpublicclassClass1//永远无法被实例化的类
2ExpandedBlockStart.gifContractedBlock.gifdot.gif{
3InBlock.gif//这个类没有可以被外部访问的构造函数
4InBlock.gifprivateClass1()
5ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
6ExpandedSubBlockEnd.gif}

7ExpandedBlockEnd.gif}

8None.gif
9None.gifpublicclassClass2//只可以在本程序内实例化的类
10ExpandedBlockStart.gifContractedBlock.gifdot.gif{
11InBlock.gifinternalClass2()
12ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
13ExpandedSubBlockEnd.gif}

14ExpandedBlockEnd.gif}

15None.gif
16None.gifpublicclassClass3//只可以通过自身实例化的类
17ExpandedBlockStart.gifContractedBlock.gifdot.gif{
18InBlock.gifprivateClass3()
19ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
20ExpandedSubBlockEnd.gif}

21InBlock.gif//private的构造函数可以被自身的方法调用,所以可以用Class3.CreateClass3()来创建实例
22InBlock.gifpublicstaticClass3CreateClass3()
23ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
24InBlock.gifreturnnewClass3();
25ExpandedSubBlockEnd.gif}

26ExpandedBlockEnd.gif}

27None.gif
28None.gifpublicclassClass4
29ExpandedBlockStart.gifContractedBlock.gifdot.gif{
30InBlock.gif//Class4不能被实例化,但又要求子类在继承时构造有参
31InBlock.gifprotectedClass4(inti)
32ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{}
33InBlock.gif
34ExpandedBlockEnd.gif}

35None.gif
36None.gifpublicclassClass4Sub:Class4
37ExpandedBlockStart.gifContractedBlock.gifdot.gif{
38InBlock.gif
39InBlock.gifpublicClass4Sub(inti)
40InBlock.gif:base(i)
41ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
42InBlock.gif
43ExpandedSubBlockEnd.gif}

44ExpandedBlockEnd.gif}

45None.gif
46None.gifpublicclassClass5//要求子类必须显示调用父类构造函数的
47ExpandedBlockStart.gifContractedBlock.gifdot.gif{
48InBlock.gifpublicClass5(inti)
49ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{}
50ExpandedBlockEnd.gif}

51None.gif
52None.gifpublicclassClass5Sub:Class5
53ExpandedBlockStart.gifContractedBlock.gifdot.gif{
54InBlock.gifpublicClass5Sub()
55InBlock.gif:base(0)
56ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{}
57InBlock.gifpublicClass5Sub(inti)
58InBlock.gif:base(i)
59ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{}
60ExpandedBlockEnd.gif}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值