【C#语言】C#构造函数简析

4412

构造函数:

每当创建类或结构时,将会调用其构造函数。类或结构可能具有采用不同参数的多个构造函数。 使用构造函数,程序员能够设置默认值、限制实例化,并编写灵活易读的代码。


实例构造函数:

1、构造函数的名字与类名相同。

2、使用 new 表达式创建类的对象或者结构时,会调用其构造函数。并且通常初始化新对象的数据成员。

3、类会有默认的构造函数(静态类没有),并使用默认值来初始化对象字段

4、构造函数可以有参数,可以以多态的形式存在多个构造函数


静态构造函数:

类或结构也可以具有静态构造函数,该静态构造函数初始化类型的静态成员。静态构造函数是无参数构造函数。如果未提供静态构造函数来初始化静态字段,C# 编译器将提供默认静态构造函数,该静态构造函数会将静态字段初始化为其默认值。


这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。


私有构造函数:

私有化构造函数,是为了保护类不被实例化,保护类中除静态成员(想被外界访问的)外的成员变量, 属性,方法等不会被访问。

using System;

//using static System.Math; //double aa = PI;

namespace MianshiText

{

    class Test{

        public static string name = "moren";

        public int age = 0;

 

        //私有化外界访问不到

        private Test()

        {

        }

        //每次实例时被调用

        public Test(string name,int age)

        {

            Test.name = name;

            this.age = age;

        }

        //是类的构造函数,没有参数,只调用一次

        static Test()

        {

            name = "czhenya";

            //age = 15; //只能修改静态变量

        }

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            //默认执行静态构造函数,输出值为:czhenya

            Console.WriteLine( Test.name);


            //无参构造函数已被私有化,编译出错

            //Test t2 = new Test(); 

            //调用带参构造函数

            Test t1 = new Test("chen", 15);

            Console.WriteLine("姓名:{0},年龄:{1}", Test.name, t1.age);

 

            Test.name = "ya";

            t1.age = 20;

            Console.WriteLine("姓名:{0},年龄:{1}", Test.name, t1.age);

            Console.ReadKey();

        }

    }

}


特别声明:本文仅供交流学习 , 版权归属原作者,并不代表游民部落赞同其观点和对其真实性负责。若文章无意侵犯到您的知识产权,损害了您的利益,烦请与我们联系vmaya_gz@126.com,我们将在24小时内进行修改或删除。

相关推荐:

教程推荐