博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#拾遗系列(3):构造函数
阅读量:7232 次
发布时间:2019-06-29

本文共 1189 字,大约阅读时间需要 3 分钟。

1. 主要演示构造函数的继承

 

  •   声明空构造函数可阻止自动生成默认构造函数。
  •   如果您不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数。
  •   通常显式地使用 private 修饰符来清楚地表明该类不能被实例化。

 

2. 静态构造函数

  • 静态构造函数具有以下特点:
  • 静态构造函数既没有访问修饰符,也没有参数。
  • 在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。
  • 无法直接调用静态构造函数。
  • 在程序中,用户无法控制何时执行静态构造函数。
  • 静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。
  • 静态构造函数在为非托管代码创建包装类时也很有用

3. 示例:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

//Description: 构造函数测试

 

namespace NetTest

{

   public class Father

    {

 

       public Father()

       {

           Console.Out.WriteLine("Father say");

       }

        public static Father()

        { }

        */

 

       public Father(string s)

       {

           Console.Out.WriteLine(s + ":Father Say");

       }

    }

 

   public class Son:Father

   { 

       /*

       //调用父无参构造函数类构造函数

       public Son()

       {

           Console.Out.WriteLine("Son say");

       }

        */   

       public Son(string s)

       {

           Console.Out.WriteLine("good son say:");      

       }

 

       /* base显示调用父类构造函数

       public Son()

           : base("jack")

       {

           Console.Out.WriteLine("Son say");

       }

       */

 

       /*子类会隐示调用父类无参构造函数*/

       /*this调用自身重载的构造函数*/

       public Son()

           : this("call myself another constructor")

       {             

           Console.Out.WriteLine("above sentence calling myself");      

       }     

   }

 

   public class TestConstructor

   {

 

       public void Test()

       {

           new Son();       

       }

   }

}

本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2008/06/11/1217410.html如需转载请自行联系原作者

王德水

你可能感兴趣的文章
Hdu-6230 2017CCPC-哈尔滨站 A.Palindrome Manacher 主席树
查看>>
提高javascript编码质量-68-1
查看>>
设计模式开篇 - 简单工厂模式
查看>>
Spring MVC 注解和XML的区别
查看>>
利用Swoole实现PHP+websocket直播,即使通讯代码,及linux下swoole安装基本配置
查看>>
Elastic学习第一天遇到的问题以及添加的一些操作
查看>>
Python lambda介绍
查看>>
BSON与JSON的区别
查看>>
文件系统存储数据,与数据库系统存储数据的差别
查看>>
linux之awk
查看>>
第九章 接口
查看>>
XCode4.2.1 使用NavigationController实现View切换
查看>>
如何让NSURLConnection在子线程中运行
查看>>
es6-Generator
查看>>
Python3.6单例模式报错TypeError: object() takes no parameters的解决方法
查看>>
HTML常用标记(选择性,不全)
查看>>
用一辈子去领悟的22条生活真谛
查看>>
1968: [Ahoi2005]COMMON 约数研究
查看>>
discuz 启用html code 显示问题
查看>>
A1027. Colors in Mars (20)
查看>>