
构造函数
提示
如果没有构造函数他会默认声明一个无参构造函数。
class Person { public int Id; public Person() { Id = 1; } } struct Person2 { public int Id; public Person2(int a) { Id = a; } }
js
class Person { public int Id; public string Name; public Person() { } } struct Person2 { public int Id; public string name; public Person2(int a) { Id = a; name = "leemoon"; } }
class Person { public int Id; public string Name; public Person() { } public Person(int a) { } }
通过对比来观察:
public int Id; public string Name; public Person() { }//无参的构造函数 public Person(int id) { Id = id; }//一个参数的构造函数(构造函数重载) public Person(int id, string name) { Id = id; Name = name; }//两个参数的构造函数。
特殊写法:
public Person(string id):this() { Id = id; }//后面的this会调用第一个无参的重载构造函数。
public Person(int id, string name):this(id) { Id = id; Name = name; }//这样则是调用,一个参数的重载函数。也就是第二个重载函。参数是从前面的int id传入this的id. public Person(int id, string name):this(id+10) { Id = id; Name = name; } this里的参数甚至还可以拿来运算。
现在有个问题:如果是无参数的重载构造函数想调用有参呢?
public Person() :this(10,"leemoon") { }//因为前面部分不能传入参数所以,可以在this里设置一个常量的默认参数。
起到一个承上启下的作用:

本文作者:Leemoon
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!