zoukankan      html  css  js  c++  java
  • 【c# 学习笔记】构造函数

      构造函数 主要用于创建类的实例对象。当调用构造函数创建一个对象时,构造函数会为对象分配内存空间,并初始化类的成员。构造函数分为实例构造函数和静态构造函数两种。

      1.实例构造函数

      实例构造函数用于创建和初始化类的实例。使用new运算符创建对象的过程,其实就是在调用实例构造函数,来初始化类中所有实例成员。如下:

      

        public class Person
        {
    
            private string name;
    
            //实例构造函数
            public Person ()
            {
                name = "Learning Hard";      
            }
        }

      构造函数有以下特点:

        ① 构造函数可以进行方法重载。实现了方法重载,就可通过不同的方式来完成类的实例化。

        ② 如果没有为类显式地定义一个构造函数,则c#编译器会自动生成一个函数体为空的默认无参的实例构造函数。

        ③ 可以对实例构造函数指定访问级别,即可以使用public、protected和private修饰符来修饰,然而不是任何一个

          函数都可以成为实例构造函数,实例构造函数必须满足以下两个条件。

          1.构造函数必须和类同名。

          2.构造函数不允许有返回类型。

      如下:

        

        class Person
        {
            private string name;
    
            public string Name
            {
                get
                {
                    return name;
                }
            }
    
            public Person ()
            {
                name = "Learning Hard";
            }
    
            public Person (string name)
            {
                this.name = name;
            }
        }
          static void Main(string[] args)
            {
                Person personWithoutPara = new Person();
                Person personWithPara = new Person("肖磊");
    
                Console.WriteLine(personWithoutPara.Name);
                Console.WriteLine(personWithPara.Name);
                 
                Console.Read();
            }

       2.静态构造函数

        静态构造函数用于初始化类中的静态成员,在创建第一个实例或引用任何静态成员之前,CLR都将自动调用静态构造函数。如下:

        

        class Person
        {
            private static string name;
    
            //静态构造函数,仅执行一次
    
            static Person()
            {
                Console.WriteLine("静态构造函数被调用了");
                name = "赵雷舅舅";
            }
    
            public static string Name
            {
                get
                {
                    return name;
                }
            }
        }
    static void Main(string[] args)
            {
                
    
                Console.WriteLine(Person.Name);
           Console.WriteLine(Person.Name);
    Console.Read(); }

       

         如上,两次调用了Person对象的静态Name属性,但只输出了一次“静态构造函数被调用了”的语句,这足以说明静态构造函数与

      实例构造函数的不同之处--静态构造函数只执行一次。与实例构造函数一样,要成为静态构造函数必须具有以下特点。

        ① 静态构造函数不能使用任何访问修饰符。

        ② 静态构造函数不能带有任何参数。

        ③ 静态构造函数只会执行一次。

        ④ 不能直接调用静态构造函数。

        ⑤ 在程序中,程序员无法控制执行静态构造函数的时机。

  • 相关阅读:
    ruby2.2.2在msvc2010上编译
    msvc2010生成的指令序列有问题,可能跟pgo有关
    Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format.
    正则总结
    实现点击按钮全选功能
    轮播图(省代码方法)
    js实现复制URL功能
    字符串的常用方法
    两种文件上传的实现-Ajax和form+iframe
    jquery中attr和prop的区别
  • 原文地址:https://www.cnblogs.com/xiaoyehack/p/9202894.html
Copyright © 2011-2022 走看看