zoukankan      html  css  js  c++  java
  • 10.C# 构造函数

    1.构造函数

    构造函数是用来初始化对象的,只能由new运算符调用。构造函数与类同名,没有返回值,不能用void修饰,可以有public和private两种修饰符,当用private修饰时外界不能访问到这个构造函数。

    C#有一个无参的默认构造函数,如果需要做特别的初始化可以自己添加构造函数,如

    class DisplayClass{
            public DisplayClass(string displayString)
            {
                Console.WriteLine(displayString);
                Console.WriteLine();
            }
    
            public DisplayClass()//默认构造函数
            { 
                
            }
        }

    2.构造函数执行顺序

    类继承时子类需要调用父类的构造函数才能正确初始化父类,如果子类没有显式调用父类的构造函数,系统会调用父类的默认构造函数,可以使用构造函数初始化器指定需要调用的父类构造函数,如下使用base调用父类的构造函数

        class BaseA
        {
          
            public BaseA()
            {
                Console.WriteLine("基类构造方法被调用");
            }
    
            public BaseA(string baseString)
            {
                Console.WriteLine(baseString);
            }
        }
    
        class DriveB : BaseA
        {
           
            public DriveB():base("基类构造方法被调用")
            {
                Console.WriteLine("继承类构造方法被调用");
            }
        }

    也可以使用this调用当前类其他构造函数

     class Person
        {
            int age;
            string name;
    
            public Person()
            { 
                
            }
    
            public Person(int age)
            {
                this.age = age;
            }
    
            public Person(int age, string name):this(age)
            {
                this.name = name;
            }
    
        }

    当有继承关系时构造函数的调用顺序 :System.Object的构造函数-> 基类的构造函数->子类的构造函数,因为所有类都是继承Object类的,所以最先调用Object类的构造函数

  • 相关阅读:
    Linux shell 进制转换
    shell 的getopts用法
    COOKIE 和SESSION
    wcf在iis6上的部署
    fastjson修改json的值(转)
    jsonpath的简单用法(转)
    fastjson序列化定制过滤器
    java操作excel给单元格加下拉列表(转)
    Django Admin管理后台详解1(转)
    Django Admin管理后台详解2(转)
  • 原文地址:https://www.cnblogs.com/lidaying5/p/10511100.html
Copyright © 2011-2022 走看看