热门教程推荐
  • 【一】数据结构与算法
    【一】数据结构与算法
    数据结构是一种具有一定逻辑关系,在计算机中应用某种存储结构,并且封装了相应操作的数据元素集合。它包含三方面的内容,逻辑关系、存储关系及操作。
  • 【三】Java流程控制语句
    【三】Java流程控制语句
    从结构化程序设计角度出发,程序有3种结构:顺序结构、选择结构和循环结构。若是在程序中没有给出特别的执行目标,系统则默认自上而下一行一行地执行该程序,这类程序的结构就称为顺序结构。
  • 【一】算法是什么
    【一】算法是什么
    提到“算法”,很多人都觉得它高深莫测、晦涩难懂。事实上的确存在一些算法,学员必须具备优秀的数学基础和编程能力才能驾驭。
  • 【二十一】创建之单例设计模式
    【二十一】创建之单例设计模式
    单例模式是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
  • 【九】部分背包问题
    【九】部分背包问题
    背包问题是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。
  • 【二】Unity3D视图界面
    【二】Unity3D视图界面
    Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面
  • 【九】Unity3D游戏发布
    【九】Unity3D游戏发布
    Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布
  • 【十】表查找解
    【十】表查找解
    查找表又可分为静态查找表和动态查找表。借助静态查找表可引申出顺序查找算法、折半查找算法、分块查找算法等;而记住动态查找表,也可以通过构建二叉排序树、平衡二叉树等实现查找操作。

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

3917

构造函数:

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


实例构造函数:

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小时内进行修改或删除。

相关推荐:

精品教程推荐
  • 【五】Java数字和日期处理:Java数字处理和日期类
    【五】Java数字和日期处理:Java数字处理和日期类
    Java提供了处理相关问题的类,包括Math类、Random类、BigInteger类、Date类等。本章将会详细介绍这些与数学和日期处理相关的类。
  • 【二】游戏世界之渲染窗口
    【二】游戏世界之渲染窗口
    游戏世界之渲染窗口
  • 【九】动态内存管理
    【九】动态内存管理
    动态内存管理机制,主要包含两方面内容,用户申请内存空间时,系统如何分配;用户使用内存空间完成后,系统如何及时回收。
  • 【四】3D美术资源规范
    【四】3D美术资源规范
    美术3D资源规范美术3D资源规范美术3D资源规范美术3D资源规范美术3D资源规范
  • 【三十】游戏UI之列表和无线列表
    【三十】游戏UI之列表和无线列表
    游戏UI界面之列表和无线列表游戏UI界面之列表和无线列表游戏UI界面之列表和无线列表游戏UI界面之列表和无线列表游戏UI界面之列表和无线列表游戏UI界面之列表和无线列表游戏UI界面之列表和无线列表游戏UI界面之列表和无线列表游戏UI界面之列表和无线列表
  • 【二十】排序之快速排序算法
    【二十】排序之快速排序算法
    提到排序算法,多数人最先想到的就是快速排序算法。快速排序算法是在分治算法基础上设计出来的一种排序算法,和其它排序算法相比,快速排序算法具有效率高、耗费资源少、容易实现等优点。
  • 【一】Lua学习入门
    【一】Lua学习入门
    Lua有一个同时进行的JIT项目,提供在特定平台上的即时编译功能,Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。
  • 【二】项目工程结构规划
    【二】项目工程结构规划
    项目工程结构规划项目工程结构规划项目工程结构规划项目工程结构规划