天天看点

C#拾遗系列(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显示调用父类构造函数

           : base("jack")

       */

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

       /*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如需转载请自行联系原作者

王德水