C#中的实例构造函数

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

以下是构造函数的用法:

(1)构造函数用于初始化类的状态。

(2)如果希望能够从类的外部创建类的实例,需要将构造函数声明为public。

构造函数的注意事项:

(1)构造函数的名称与类名相同。

(2)构造函数不能有返回值,举个例子比较好理解:

class Myclass{
DateTime TimeOfInstatiation;//字段
public Myclass(){//构造函数
TimeOfInstatiation=DateTime.Now; //初始化字段
}
 

}

以上代码就解释了,构造函数的初始化功能,与构造函数的特点是:构造函数的名称与类名相同,构造函数不能有返回值。

介绍完通用的构造函数后我们来看看一些特殊的构造函数:

一、带参数的构造函数

特点是:

(1)构造函数可以带参数,参数语法和其他方法完全相同。

(2)构造函数可以被重载。

在使用创建对象表达式的新实例时,要使用new运算符,后面跟着类的某个构造函数。new运算符使用该构造函数创建类的实例。列如在下面的代码中,Class

1有三个构造函数,一个不带参数一个带int参数一个带string参数。Main使用各个构造函数创建实例。

class Class
    {
        int Id;
        string Name;
        public Class()
        {
            Id = 23; Name = "Nemo";
        }
        public Class(int val)
        {
            Id = val; Name = "Nemo";
        }
        public Class(string name)
        {
            Name = name;
        }
        public void SoundOff()
        {
            Console.WriteLine("Name {0},Id {1}",Name,Id);
        }
    }
    class Program {
        static void Main(string[] args)
        {
            Class a = new Class();
            Class b = new Class(7);
            Class c = new Class("hello");
            a.SoundOff();
            b.SoundOff();
            c.SoundOff();
        
        }
    }

这段代码的输出结果为:

Name 23,Id Nemo
Name 7,Id Nemo
Name 23,Id hello
二、默认的构造函数:
如果在类的声明中没有显示的提供实例构造函数,那么编译器会提供一个隐示的默认的构造函数,该构造函数有以下特征:
(1)没有参数。
(2)方法体为空。
如果你为类声明了任何构造函数,那么编译器将不会为该类定义一个默认的构造函数。
三、静态的构造函数。构造函数也可以声明为static,实例构造函数初始化类的每一个新的实例,而static构造函数初始化类级别的项。通常,静态构造函数初始化类的静态字段。
(1)初始化类级别的项。
(2)在引用任何静态成员之前。
(3)在创建类的任何实例之前。
静态构造函数在一下方面与实例化构造函数相识。
(1)静态构造函数的名称与类名必须相同。
(2)构造函数不能有返回值。
静态构造函数在以下与实例构造函数不同。
(1)静态构造函数声明中必须使用static关键字。
(2)静态构造函数不能有访问修饰符。
静态构造函数注意事项:
(1)类既可以有静态构造函数也可以有实例化构造函数。
(2)如同静态方法,静态构造函数不能访问类中的所有实例成员,因此也不能用this访问器。
(3)不能从程序中显示的调用静态构造函数,系统会自动调用它们,在类的任何实例创建之前,类的任何静态成员被调用之前。
posted @ 2018-08-15 23:13  七分暖  阅读(1129)  评论(0)    收藏  举报
回到顶部