C#(构造方法使用和注意事项)

一、简单记录一下构造方法使用

定义:构造函数(方法) ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

  1. 构造方法必须与类名相同,一个类中是可以有多个构造方法(方法的重载)
  2. 方法的重载:可根据参数个数不同,参数位置不同,参数类型来重载出多个方法
  3. 构造方法的调用只能在所在的类被实例化(new)之后,被自动调用,且只能调用无参的构造方法。有参的构造方法无法被自动调用或者实例化后引用。
  4. 无参构造方法一般用在来进行类中字段的赋初值。
  5. 如果一个类没有构造方法,C#编译器默认自动生成一个隐式无参的构造方法。

可以结合下面代码理解上面文字,代码如下(示例):

  internal class Program
    {
        static void Main(string[] args)
        {
            //实例化对象
            A a=new A();

            //此时输出结果时时 1 2
            //为什么会是1 2 而不是 2 1 呢?因为在类中,静态的方法和字段的调用顺序时由于非静态的方法和字段。注:静态指的是 static 关键字。
            //为什么不是输出 1 2 3 4 5 6 呢?因为4 5 6是有参的构造方法,类在实例化时不会自动调用的。


            int aa = 1;
            a.A(aa);//为什么这句会报错?因为构造方法只能在类被实例化时自动调用。
        }
    }
    public class A
    {
        //在visual studio 中可以输入 ctor 后,按两下tab键 快速生成公共无参构造方法。
      
        public A()
        {
            Console.WriteLine(2);
        }
        static A()
        {
            Console.WriteLine(1);
        }

        //方法重载
        public A(string a)
        {
            Console.WriteLine(3);
        }
        public A(int a)
        {
            Console.WriteLine(4);
        }
        public A(string a,int b)
        {
            Console.WriteLine(5);
        }
        public A(int b,string a)
        {
            Console.WriteLine(6);
        }
       
    }

注:类的执行顺序:

  1. 不考虑继承:静态字段,静态构造方法,实例字段,实例构造方法
  2. 继承关系:子类静态字段,子类静态构造方法,子类实例字段,父类静态字段,父类静态构造方法,父类实例字段,父类实例构造方法,子类实例构造方法
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值