以下陈述中this
和base
关键字功能有何区别?
public Customer(string name, string referrerName) : base(name)
public Customer(string Name) : this(Name)
答案 0 :(得分:8)
base(name)
将使用提供的参数
this(name)
将使用提供的参数调用当前类构造函数,在您的情况下,该参数是当前构造函数,并且由于构造函数无法调用自身而给出编译错误。
假设您有这些类
public class A
{
public A(string a) { Console.WriteLine(a); }
public A(int a) { Console.WriteLine(a * a); }
}
public class B : A
{
public B(string a): base (a) { }
public B(int a): this (a.ToString()) { }
}
new B("hello")
将调用public A(string a)
并在输出中打印“hello”
new B(4)
会致电public B(string a)
,呼叫public A(string a)
并在输出中打印“4”
答案 1 :(得分:0)
public Customer(string name, string referrerName) : base(name)
当客户构造函数调用基础构造函数时也调用了,第二个例子没有意义,它看起来像构造函数调用本身...