c#中,这里边有个this的构造函数,他的意思是要先调用底下带有string newname参数的

c#中,这里边有个this的构造函数,他的意思是要先调用底下带有string newname参数的构造函数,再调用自己吗,可是他自己里边什么都没有,为什么还要调用,还有就是为什么要先调用底下那个构造函数呢,不太理解

原理:第一:一个类可以定义多个构造函数重载,重载之间通过什么区分呢,就是通过参数列表(参数类型、数量和顺序)的不同,构造函数之间相互调用,就是在调用者方法名后面加个this(参数列表),this就是构造函数的意思,编译器会自动根据参数列表找到匹配的构造函数。
第二:为什么A构造函数调用了B构造函数必须先执行B,这个C#语言设计的就是这个样子,记住就行了,究其原因,可能是为了保证数据的参数完整性有效性,如果B是最后被调用,那么A传给B的参数有可能在调用B之前被修改,使得创建的对象出现错误。
原因:为什么一个构造函数要调用另一个构造函数,我们都知道构造函数是用来初始化对象的,如果某个构造函数已经完成了部分初始化功能,那么另一个构造函数可以直接调用,不需要重复写代码。举一个例子:
public class Person{
private String name;
private int age;
private bool gender;
//创建一个具有指定年龄、性别的person
public Person(int age, bool gender){
this.gender = gender;
this.age = age;
}

//创建一个具有指定年龄、性别、姓名的person
public Person(String name,int age, bool gender) this(age, gender){
this.name = name;
}
}

对于为什么这个构造函数里面什么都没有,这是一种理论情况,也就是只在考试才会出现,实际开发中不可能写这样的代码。
温馨提示:内容为网友见解,仅供参考
无其他回答

...他的意思是要先调用底下带有string newname参数的
原理:第一:一个类可以定义多个构造函数重载,重载之间通过什么区分呢,就是通过参数列表(参数类型、数量和顺序)的不同,构造函数之间相互调用,就是在调用者方法名后面加个this(参数列表),this就是构造函数的意思,编译器会自动根据参数列表找到匹配的构造函数。第二:为什么A构造函数调用了B构造函数必...

关于C#中this的用法
public Employee(string name, string alias){ \/\/将构造方法带的值赋给本类中的name,这个this你可以看成是“本类”的意思 this.name = name;this.alias = alias;} 括号里的的参数不一定要取相同的名称这个方法也可以写成 public Employee(string a,stirn b){这样写就不用this了,因为这里name和a...

c#中this的用法
1、在构造函数中this用于限定被相同的名称隐藏的成员,例如:public class Student{ public Student(string name, string age){ this.name = name;this.age = age;}} 2、将对象作为参数传递到其他方法时也要用this表达,例如:fun(this)。3、可以通过this[]来声明索引器,例如:public...

C#中的this
C#中的保留字this仅限于在构造函数,类的方法和类的实例中使用。在类的构造函数中出现的this作为一个值类型,它表示对正在构造的对象本身的引用 在类的方法中出现的this作为一个值类型,表示对调用该方法的对象的引用 在结构的构造函数中出现的this作为一个变量类型,表示对正在构造的结构的引用 在结构...

C# 构造函数后面接 : this() 什么意思
Console.WriteLine("基类带一个参数的构造函数. value:{0}", numA);} } class ChildClassA : BaseClass { private int numB;public ChildClassA(){ Console.WriteLine("子类无参数构造函数. value:{0}", numB);} public ChildClassA(int i){ this.numB = i;Console.WriteLine("子类带有一...

C# 构造函数 后面跟了一个 ~ 又跟了一个同名方法。是什么意思?
~AddressBookController(){ if(this.dataContext !=null){ this.dataContext.Dispose();} } 这个是析构函数。就是构造函数前加上~符号。使用析构函数主要是释放资源。当你关闭程序的时候,就是调用析构函数。更多、全面的了解请搜索 析构函数。

在C#中 构造函数间怎样互相调用?
}当调用子类构造函数时,先通base调用父类的构造函数。(2)在同一个类中,不同重载的构造函数相互调用。例如 public class SampleClass{ private string str; private int i; \/\/构造函数一 public SampleClass(string s) { this.str = s; i = 100; } \/\/构造函数...

关于c#this的用法
这个是构造函数 Cat(String name) 此处的name是你定义cat的时候的传入值 this.name(这个是上面的成员变量) = name(传入值);

C#中关于关键词THIS的完整定义及用法。请在用法中增加举例说明_百度...
this 是一个保留字,仅限于构造函数和方法成员中使用 在类的构造函数中出现表示对正在构造的对象本身的引用,在类的方法中出现表示对调用该方法的对象的引用,在结构的构造上函数中出现表示对正在构造的结构的引用,在结构的方法中出现表示对调用该方法的结果的引用 this 保留字不能用于静态成员的实现里...

C#构造函数应该初始化字段还是属性
如果你的属性只是简单的做赋值和取值的话 效果一样其实 不过推荐你用属性 因为有可能你的属性在赋值或取值的时候会做一些操作 所以最好让字段赋值的时候经过这些操作避免无效值 不需要担心赋值属性会慢 因为如果C#编译器检测到属性简单赋值 会自动替换成字段赋值的 这点你可以从IL代码中看出来 ...

相似回答